/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.test.annotations.enumerated;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import org.hibernate.annotations.Formula;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.test.annotations.enumerated.custom_types.LastNumberType;
import org.hibernate.test.annotations.enumerated.enums.Common;
import org.hibernate.test.annotations.enumerated.enums.FirstLetter;
import org.hibernate.test.annotations.enumerated.enums.LastNumber;
import org.hibernate.test.annotations.enumerated.enums.Trimmed;
/**
* @author Janario Oliveira
* @author Brett Meyer
*/
@Entity
@TypeDef(typeClass = LastNumberType.class, defaultForType = LastNumber.class)
public class EntityEnum {
@Id
@GeneratedValue
private long id;
private Common ordinal;
@Enumerated(EnumType.STRING)
private Common string;
@Type(type = "org.hibernate.test.annotations.enumerated.custom_types.FirstLetterType")
private FirstLetter firstLetter;
private LastNumber lastNumber;
@Enumerated(EnumType.STRING)
private LastNumber explicitOverridingImplicit;
@Column(columnDefinition = "char(5)")
@Enumerated(EnumType.STRING)
private Trimmed trimmed;
@Formula("upper('a')")
@Enumerated(EnumType.STRING)
private Trimmed formula;
@Enumerated(EnumType.STRING)
@ElementCollection(targetClass = Common.class, fetch = FetchType.LAZY)
@JoinTable(name = "set_enum", joinColumns = { @JoinColumn(name = "entity_id") })
@Column(name = "common_enum", nullable = false)
private Set<Common> set = new HashSet<Common>();
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Common getOrdinal() {
return ordinal;
}
public void setOrdinal(Common ordinal) {
this.ordinal = ordinal;
}
public Common getString() {
return string;
}
public void setString(Common string) {
this.string = string;
}
public FirstLetter getFirstLetter() {
return firstLetter;
}
public void setFirstLetter(FirstLetter firstLetter) {
this.firstLetter = firstLetter;
}
public LastNumber getLastNumber() {
return lastNumber;
}
public void setLastNumber(LastNumber lastNumber) {
this.lastNumber = lastNumber;
}
public LastNumber getExplicitOverridingImplicit() {
return explicitOverridingImplicit;
}
public void setExplicitOverridingImplicit(LastNumber explicitOverridingImplicit) {
this.explicitOverridingImplicit = explicitOverridingImplicit;
}
public Trimmed getTrimmed() {
return trimmed;
}
public void setTrimmed(Trimmed trimmed) {
this.trimmed = trimmed;
}
public Trimmed getFormula() {
return formula;
}
public void setFormula(Trimmed formula) {
this.formula = formula;
}
public Set<Common> getSet() {
return set;
}
public void setSet(Set<Common> set) {
this.set = set;
}
}