读书人

hibernate 引文

发布时间: 2012-08-21 13:00:21 作者: rapoo

hibernate 注解
hibernate 父子类关系 注解配置:

父类:
@Entity
@Table(name = "COMP_PAGE_CONFIG_REC")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@ForceDiscriminator
@DiscriminatorColumn(name = "CATEGORY", discriminatorType = DiscriminatorType.STRING)
public abstract class PageConfigRec implements Serializable {

//此字段标记不同子类,在对子类进行查询操作时不需要加上此属性的相等条件
@Column(name = "CATEGORY", nullable = true, length = 32, insertable = false, updatable = false)
private String subClsType;

private String name;

//get ,set methods
}

子类:
@Entity
@DiscriminatorValue("FIELD")
public class PageFieldConfigRec extends PageConfigRec implements IPageElementConfig, Serializable {
private static final long serialVersionUID = 1L;


}

例如:hql: from PageFieldConfigRec where name = ? ;
对应sql:select * from COMP_PAGE_CONFIG_REC where CATEGORY='FIELD' and name = ?;
其中CATEGORY='FIELD' 是hibernate 自动加上的。

这种场景应用于父实体类(抽象)有N个子类,但都对应一张表,此表中有一个字段标记该表的此部分记录属于不同子类,
即Hql对不同子类进行操作时,其实是对表的一部分(与此类对应)进行操作。

读书人网 >软件架构设计

热点推荐