import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Index;
import org.hibernate.annotations.Table;
+import org.hibernate.annotations.Type;
import org.hibernate.envers.Audited;
import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.ContainedIn;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.common.MultilanguageText;
+import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
@XmlAttribute(name ="RecordBasis")
@Column(name="recordBasis")
@NotNull
- @Enumerated //TODO use UserType
+ @Type(type = "eu.etaxonomy.cdm.hibernate.EnumUserType",
+ parameters = {@org.hibernate.annotations.Parameter(name = "enumClass", value = "eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType")}
+ )
private SpecimenOrObservationType recordBasis;
* Example: fruits, seeds, tissue, gDNA, leaves
*
* @see ABCD: DataSets/DataSet/Units/Unit/KindOfUnit
+ * @see TermType#KindOfUnit
*/
@XmlElement(name = "KindOfUnit")
@XmlIDREF
private boolean publish = true;
-// ********************** CONSTRUCTOR ******************************/
-
- //Constructor for hibernate use only
- protected SpecimenOrObservationBase(){super();}
+//********************************** CONSTRUCTOR *********************************/
+
+ //for hibernate use only
+ @Deprecated
+ protected SpecimenOrObservationBase(){super();}
- public SpecimenOrObservationBase(SpecimenOrObservationType recordBasis) {
+ protected SpecimenOrObservationBase(SpecimenOrObservationType recordBasis) {
super();
- assert recordBasis != null : "RecordBasis must not be null";
+ if (recordBasis == null){ throw new IllegalArgumentException("RecordBasis must not be null");}
this.recordBasis = recordBasis;
}