Hibernate: Single Table inheritance with annotation
April 26th, 2010 by jeremychone
//// Principal.java
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.Table;
import javax.persistence.InheritanceType;
import javax.persistence.DiscriminatorType;
import org.hibernate.annotations.ForceDiscriminator;
@Entity
@Table(name ="principal")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "ctype", discriminatorType = DiscriminatorType.CHAR)
@DiscriminatorValue("p")
@ForceDiscriminator //optional, useful in some occasions
public class Principal{
...
}
//// User.java
@Entity
@DiscriminatorValue("u")
@ForceDiscriminator //optional, useful in some occasions
public class User extends Principal {
...
}
//// Group.java
@Entity
@DiscriminatorValue("g")
@ForceDiscriminator //optional, useful in some occasions
public class Group extends Principal {
...
}
Posted:
Monday, April 26th, 2010
Tags: Hibernate.
Actions: RSS 2.0 feed.
You can leave a response, or trackback from your own site.