1 /* Package Annotations*/
3 @javax.xml
.bind
.annotation
.XmlSchema(namespace
= "http://etaxonomy.eu/cdm/model/common/1.0", elementFormDefault
= javax
.xml
.bind
.annotation
.XmlNsForm
.QUALIFIED
)
4 @com.sun
.xml
.bind
.XmlAccessorFactory(eu
.etaxonomy
.cdm
.jaxb
.CdmAccessorFactoryImpl
.class)
5 @org.hibernate
.annotations
.GenericGenerators(
7 /* Steve Ebersole of Hibernate highly recommends the use of the two new generators
8 * http://relation.to/2082.lace
9 * Also see: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-id-enhanced
11 /* new table generator
12 * always stores sequences in a table. May be configured to return a sequence on a per table basis
13 * RECOMMENDED WHEN RUNNING A CDM DATASOURCE IN A MULTI CLIENT ENVIRONMENT
16 name
="enhanced-table",
17 strategy
= "org.hibernate.id.enhanced.TableGenerator",
19 @Parameter(name
="optimizer", value
= "pooled"),
20 /* initial_value = increment_size as proposed to fix an issue with pooled optimizer
21 * http://opensource.atlassian.com/projects/hibernate/browse/HHH-3608?focusedCommentId=37112&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_37112
23 @Parameter(name
="initial_value", value
= "10"),
24 @Parameter(name
="increment_size", value
= "10"),
25 /* we want to have a sequence per table */
26 @Parameter(name
="prefer_entity_table_as_segment_value", value
="true")
29 /* new sequence generator
30 * Using sequence when the dialect supports it, otherwise it will emulate a sequence using a table in the db
31 * This method will result in database wide unique id's */
33 name
="enhanced-sequence",
34 strategy
= "org.hibernate.id.enhanced.SequenceStyleGenerator",
36 @Parameter(name
="optimizer", value
= "pooled"),
37 /* initial_value = increment_size as proposed to fix an issue with pooled optimizer
38 * http://opensource.atlassian.com/projects/hibernate/browse/HHH-3608?focusedCommentId=37112&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_37112
40 @Parameter(name
="initial_value", value
= "10"),
41 @Parameter(name
="increment_size", value
= "10")
44 /* A couple of old style generators */
45 /* generates identifiers of type long, short or int that are unique only when no other process
46 * is inserting data into the same table.
47 * DO NOT USE IN A CLUSTER OR MULTIPLE CLIENT ENVIRONMENT */
49 name
="system-increment",
50 strategy
= "increment"
52 /* supports identity columns in DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL.
53 * The returned identifier is of type long, short or int. */
55 name
="system-identity",
59 /* uses a hi/lo algorithm to efficiently generate identifiers of type long, short or int,
60 * given a table and column (by default hibernate_unique_key and next_hi respectively) as
61 * a source of hi values. The hi/lo algorithm generates identifiers that are unique only
62 * for a particular database. */
67 /* uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in Interbase.
68 * The returned identifier is of type long, short or int */
70 name
="system-sequence",
73 /* selects identity, sequence or hilo depending upon the capabilities of the underlying database. */
83 @org.hibernate
.annotations
.TypeDefs( {
84 @org.hibernate
.annotations
.TypeDef(name
="persistentDuration", typeClass
=org
.joda
.time
.contrib
.hibernate
.PersistentDuration
.class),
85 @org.hibernate
.annotations
.TypeDef(name
="dateTimeUserType", typeClass
=org
.joda
.time
.contrib
.hibernate
.PersistentDateTime
.class),
86 @org.hibernate
.annotations
.TypeDef(name
="partialUserType", typeClass
=eu
.etaxonomy
.cdm
.hibernate
.PartialUserType
.class),
87 @org.hibernate
.annotations
.TypeDef(name
="uuidUserType", typeClass
=eu
.etaxonomy
.cdm
.hibernate
.UUIDUserType
.class),
88 @org.hibernate
.annotations
.TypeDef(name
="uriUserType", typeClass
=eu
.etaxonomy
.cdm
.hibernate
.URIUserType
.class)
90 @org.hibernate
.annotations
.AnyMetaDef(name
= "CdmBase" ,
94 @MetaValue(value
= "eu.etaxonomy.cdm.model.agent.Institution", targetEntity
= Institution
.class),
95 @MetaValue(value
= "eu.etaxonomy.cdm.model.agent.Person", targetEntity
= Person
.class),
96 @MetaValue(value
= "eu.etaxonomy.cdm.model.agent.Team", targetEntity
= Team
.class),
97 @MetaValue(value
= "eu.etaxonomy.cdm.model.common.Annotation", targetEntity
= Annotation
.class),
98 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.MediaKey", targetEntity
= MediaKey
.class),
99 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.TaxonDescription", targetEntity
= TaxonDescription
.class),
100 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.SpecimenDescription", targetEntity
= SpecimenDescription
.class),
101 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.TaxonNameDescription", targetEntity
= TaxonNameDescription
.class),
102 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.CategoricalData", targetEntity
= CategoricalData
.class),
103 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.CommonTaxonName", targetEntity
= CommonTaxonName
.class),
104 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.Distribution", targetEntity
= Distribution
.class),
105 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.IndividualsAssociation", targetEntity
= IndividualsAssociation
.class),
106 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.QuantitativeData", targetEntity
= QuantitativeData
.class),
107 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.TaxonInteraction", targetEntity
= TaxonInteraction
.class),
108 @MetaValue(value
= "eu.etaxonomy.cdm.model.media.Media", targetEntity
= Media
.class),
109 @MetaValue(value
= "eu.etaxonomy.cdm.model.molecular.Sequence", targetEntity
= Sequence
.class),
110 @MetaValue(value
= "eu.etaxonomy.cdm.model.name.BacterialName", targetEntity
= BacterialName
.class),
111 @MetaValue(value
= "eu.etaxonomy.cdm.model.name.BotanicalName", targetEntity
= BotanicalName
.class),
112 @MetaValue(value
= "eu.etaxonomy.cdm.model.name.CultivarPlantName", targetEntity
= CultivarPlantName
.class),
113 @MetaValue(value
= "eu.etaxonomy.cdm.model.name.ViralName", targetEntity
= ViralName
.class),
114 @MetaValue(value
= "eu.etaxonomy.cdm.model.name.ZoologicalName", targetEntity
= ZoologicalName
.class),
115 @MetaValue(value
= "eu.etaxonomy.cdm.model.occurrence.Collection", targetEntity
= Collection
.class),
116 @MetaValue(value
= "eu.etaxonomy.cdm.model.occurrence.DerivedUnit", targetEntity
= DerivedUnit
.class),
117 @MetaValue(value
= "eu.etaxonomy.cdm.model.occurrence.FieldObservation", targetEntity
= FieldObservation
.class),
118 @MetaValue(value
= "eu.etaxonomy.cdm.model.occurrence.Fossil", targetEntity
= Fossil
.class),
119 @MetaValue(value
= "eu.etaxonomy.cdm.model.occurrence.LivingBeing", targetEntity
= LivingBeing
.class),
120 @MetaValue(value
= "eu.etaxonomy.cdm.model.occurrence.Observation", targetEntity
= Observation
.class),
121 @MetaValue(value
= "eu.etaxonomy.cdm.model.occurrence.Specimen", targetEntity
= Specimen
.class),
122 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Reference", targetEntity
= Reference
.class),
123 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Journal", targetEntity
= Reference
.class),
124 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Article", targetEntity
= Reference
.class),
125 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Book", targetEntity
= Reference
.class),
126 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Generic", targetEntity
= Reference
.class),
127 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Database", targetEntity
= Reference
.class),
128 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.BookSection", targetEntity
= Reference
.class),
129 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Reference", targetEntity
= Reference
.class),
130 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.PrintSeries", targetEntity
= Reference
.class),
131 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Proceedings", targetEntity
= Reference
.class),
132 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.Thesis", targetEntity
= Reference
.class),
133 @MetaValue(value
= "eu.etaxonomy.cdm.model.reference.WebPage", targetEntity
= Reference
.class),
134 @MetaValue(value
= "eu.etaxonomy.cdm.model.taxon.Synonym", targetEntity
= Synonym
.class),
135 @MetaValue(value
= "eu.etaxonomy.cdm.model.taxon.Taxon", targetEntity
= Taxon
.class),
136 @MetaValue(value
= "eu.etaxonomy.cdm.model.taxon.Classification", targetEntity
= Classification
.class),
137 @MetaValue(value
= "eu.etaxonomy.cdm.model.description.TextData", targetEntity
= TextData
.class),
138 @MetaValue(value
= "eu.etaxonomy.cdm.model.agent.TeamOrPersonBase", targetEntity
= TeamOrPersonBase
.class),
139 @MetaValue(value
= "eu.etaxonomy.cdm.model.common.User", targetEntity
= User
.class)
141 package eu
.etaxonomy
.cdm
.model
.common
;
143 import org
.hibernate
.annotations
.GenericGenerator
;
144 import org
.hibernate
.annotations
.MetaValue
;
145 import org
.hibernate
.annotations
.Parameter
;
147 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
148 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
149 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
150 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
151 import eu
.etaxonomy
.cdm
.model
.description
.CategoricalData
;
152 import eu
.etaxonomy
.cdm
.model
.description
.CommonTaxonName
;
153 import eu
.etaxonomy
.cdm
.model
.description
.Distribution
;
154 import eu
.etaxonomy
.cdm
.model
.description
.IndividualsAssociation
;
155 import eu
.etaxonomy
.cdm
.model
.description
.MediaKey
;
156 import eu
.etaxonomy
.cdm
.model
.description
.QuantitativeData
;
157 import eu
.etaxonomy
.cdm
.model
.description
.SpecimenDescription
;
158 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
159 import eu
.etaxonomy
.cdm
.model
.description
.TaxonInteraction
;
160 import eu
.etaxonomy
.cdm
.model
.description
.TaxonNameDescription
;
161 import eu
.etaxonomy
.cdm
.model
.description
.TextData
;
162 import eu
.etaxonomy
.cdm
.model
.media
.Media
;
163 import eu
.etaxonomy
.cdm
.model
.molecular
.Sequence
;
164 import eu
.etaxonomy
.cdm
.model
.name
.BacterialName
;
165 import eu
.etaxonomy
.cdm
.model
.name
.BotanicalName
;
166 import eu
.etaxonomy
.cdm
.model
.name
.CultivarPlantName
;
167 import eu
.etaxonomy
.cdm
.model
.name
.ViralName
;
168 import eu
.etaxonomy
.cdm
.model
.name
.ZoologicalName
;
169 import eu
.etaxonomy
.cdm
.model
.occurrence
.Collection
;
170 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
171 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldObservation
;
172 import eu
.etaxonomy
.cdm
.model
.occurrence
.Fossil
;
173 import eu
.etaxonomy
.cdm
.model
.occurrence
.LivingBeing
;
174 import eu
.etaxonomy
.cdm
.model
.occurrence
.Observation
;
175 import eu
.etaxonomy
.cdm
.model
.occurrence
.Specimen
;
176 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
177 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
178 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
179 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;