本文共 1157 字,大约阅读时间需要 3 分钟。
此方法为多个类对应一张表。 通过discriminator在配置文件中设置判断字段。
TBook :
private int pageCount
TDVD :
private String regionCode
TItem :
private String id ;
private String name ; private String manufacturer ;sql :
-- 删除表
DROP TABLE TItem ; -- 创建表 CREATE TABLE TItem ( id varchar(32) not null primary key , -- 通过此字段用于区分保存的是 Book还是 DVD category varchar(2) not null , name varchar(20) not null , manufacturer varchar(20) not null , regionCode varchar(2) , --DVD中的字段 pageCount int --Book中的字段 ) ; -- 事务提交 commit ;
TItem.hbm.xml:
<class name="TItem" table="TITEM">
<id name="id " column="ID " type="string"> <generator class="assigned" /> </id> <--定义公共字段--> <property name="name " column="NAME" type="string" not-null="true" /> <property name="manufacturer " column="MANUFACTURER" type="string" not-null="true" /> <--定义判断字段--> <discriminator column="category " type="java.lang.String"></discriminator><--设置各个子类所对应的category值 -->
<subclass name="TBook" discriminator-value="1" > <property name="pageCount " column="PAGECOUNT" type="int" /> </subclass> <subclass name="TDVD" discriminator-value="2" > <property name="regionCode " column="REGIONCODE" type="string" /> </subclass> </class>转载地址:http://hlcci.baihongyu.com/