Fixes an issue where update of title caches did not work for cloned instances.
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / common / package-info.java
1 /* Package Annotations*/
2
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(
6 {
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
10 */
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
14 */
15 @GenericGenerator(
16 name="enhanced-table",
17 strategy = "org.hibernate.id.enhanced.TableGenerator",
18 parameters = {
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
22 */
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")
27 }
28 ),
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 */
32 @GenericGenerator(
33 name="enhanced-sequence",
34 strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
35 parameters = {
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
39 */
40 @Parameter(name="initial_value", value= "10"),
41 @Parameter(name="increment_size", value = "10")
42 }
43 ),
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 */
48 @GenericGenerator(
49 name="system-increment",
50 strategy = "increment"
51 ),
52 /* supports identity columns in DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL.
53 * The returned identifier is of type long, short or int. */
54 @GenericGenerator(
55 name="system-identity",
56 strategy = "identity"
57
58 ),
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. */
63 @GenericGenerator(
64 name="system-hilo",
65 strategy = "hilo"
66 ),
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 */
69 @GenericGenerator(
70 name="system-sequence",
71 strategy = "sequence"
72 ),
73 /* selects identity, sequence or hilo depending upon the capabilities of the underlying database. */
74 @GenericGenerator(
75 name="system-native",
76 strategy = "native"
77 )
78 }
79 )
80
81
82
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)
89 })
90 @org.hibernate.annotations.AnyMetaDef(name = "CdmBase" ,
91 metaType="string",
92 idType="integer",
93 metaValues={
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)
140 })
141 package eu.etaxonomy.cdm.model.common;
142
143 import org.hibernate.annotations.GenericGenerator;
144 import org.hibernate.annotations.MetaValue;
145 import org.hibernate.annotations.Parameter;
146
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;
180