Hibernate 支持三种类型的继承方式:
-Table per concrete class
. 表与子类之间的独立一对一关系
-Table per subclass
. 每个子类对于一表, 并与主类共享主表
-Table per class hiberarchy
. 表与类的一对多关系
Table per subclass
<hibernate-mapping package="org.lxh.hibernate04">
<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" />
<joined-subclass name="TBook " table="TBook ">
<key column="ID "></key>
<property name="pageCount " type="java.lang.Integer" column="pagecount "></property>
</joined-subclass >
<joined-subclass name="TDVD " table="TDvd ">
<key column="ID "></key>
<property name="regionCode " type="java.lang.String" column="regioncode "></property>
</joined-subclass>
</class>
TBook : private int pageCount
TDVD : private S
TItem :
private String id ;
private String name ;
private String manufacturer ;
SQL:
-- 删除表
DROP TABLE TItem ;
DROP TABLE TBook ;
DROP TABLE TDVD ;
-- 创建表
CREATE TABLE TItem
(
id varchar(32) not null primary key ,
name varchar(20) not null ,
manufacturer varchar(20)
) ;
CREATE TABLE TBook
(
id varchar(32) not null primary key ,
pagecount int
) ;
CREATE TABLE TDvd
(
id varchar(32) not null primary key ,
regioncode varchar(2)
) ;
-- 事务提交
commit ;