首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate 引文

2012-08-21 
hibernate 注解hibernate 父子类关系 注解配置:父类:@Entity@Table(name COMP_PAGE_CONFIG_REC)@Inher

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对不同子类进行操作时,其实是对表的一部分(与此类对应)进行操作。

热点排行