##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" || ($idGenerator == "auto" && $table.sequence))
#set ($generatorName = "${table.name.toUpperCase()}_${column.propertyName.toUpperCase()}_GENERATOR")
	@SequenceGenerator(name="$generatorName", sequenceName="$table.formattedSequence")
	@GeneratedValue(strategy=$generationType, generator="$generatorName")
#elseif ($generationType != "")
	@GeneratedValue(strategy=$generationType)
#end      
#elseif ($mappingKind == "version")
	@Version()
#else
##DEFAULT is @Basic(), no need to generate
#end