hibernate中继承关系映射

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:51:29
在hibernate里对继承关系映射有一种方式是每一个类映射成DB中的一张表,在这个映射中的子类又对应的和另外两个类有关联关系,要在子类中生成两个外键来映射这些关联关系。在生成表的时候,他不光是在子表中生成了这两个外键字段,而且还在父类对应的表中也生成了这样的字段,只不过,父类中的字段值是NULL,并没有值。这是怎么回事!子类的映射文件应该怎么写!
<class name="entity.Product" table="t_product">
<id name="oid" column="OID" >
<generator class="seqhilo">
</generator>
</id>
<many-to-one name="category_id" column="CATEGORY_ID" cascade="all"></many-to-one>
<joined-subclass name="Book" table="t_book">
<key column="oid" />
<many-to-one name="author_id" column="AUTHOR_ID" cascade="all"></many-to-one>
<many-to-one name="publishing_id" column="PUBLISHING_ID" cascade="all"></many-to-one>

首先外键里主键的实体要自己手动的再后面初始化(new 主键实体())
配置里省事就在 <many-to-one >和<set>的属性里加上 fetch="join"
还有就是只有通过hibernate里主键查找hibernate才会自动给外键里的实体,主键里的集合赋值