##included template. Generates the @Basic, @Id, @Version annotations.
##Assumes that the context has a "column" object
##
#set ($mappingKind = $column.mappingKind)
#if ($mappingKind == "id")
	@Id
#set ($idGenerator = $table.idGenerator)
#if ($idGenerator == "auto")
#set ($generationType = "GenerationType.AUTO")
#elseif ($idGenerator == "identity")
#set ($generationType = "GenerationType.IDENTITY")
#elseif ($idGenerator == "sequence")
#set ($generationType = "GenerationType.SEQUENCE")
#elseif ($idGenerator == "table")
#set ($generationType = "GenerationType.TABLE")
#else
#set ($generationType = "")
#end
#if ($idGenerator == "sequence" )
#set ($generatorName = "${table.name.toUpperCase()}_${column.propertyName.toUpperCase()}_GENERATOR")
#if( $table.formattedSequence != "" )
	@SequenceGenerator(name="$generatorName", sequenceName="$table.formattedSequence")
#else
	@SequenceGenerator(name="$generatorName" )
#end	
	@GeneratedValue(strategy=$generationType, generator="$generatorName")
#elseif ($generationType != "")
	@GeneratedValue(strategy=$generationType)
#end      
#elseif ($mappingKind == "version")
	@Version
#else
##DEFAULT is @Basic, no need to generate
#end