您的位置:首页 > 其它

hibernate 之joined-subclass 标签

2009-12-19 20:54 176 查看
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.randy.bean2">
<class name="Item" table="t_Item">

<id name="id">
<generator class="native"/>
</id>
<property name="name" />
<joined-subclass name="Book" table="t_book">
<key column="sid" />
<property name="page" />
</joined-subclass>

<joined-subclass name="Dvd" table="t_dvd">
<key column="ids" />
<property name="region" />
</joined-subclass>
</class>

</hibernate-mapping>

以上是 实体的映射文件

String hql ="from Item";
List userlist = session.createQuery(hql).list();

Hibernate 会生成如下的SQL

select item0_.id as id0_,
item0_.name as name0_,
item0_1_.page as page1_,
item0_2_.region as region2_,
case
when item0_1_.sid is not null then
1
when item0_2_.ids is not null then
2
when item0_.id is not null then
0
end as clazz_
from t_Item item0_
left outer join t_book item0_1_ on item0_.id = item0_1_.sid
left outer join t_dvd item0_2_ on item0_.id = item0_2_.ids

但是如果是 Table per Concrete Class ,(一个子类对应一个表,父类没有表);
则会生成2条sql, 分别查询2个子表本文出自 “简单” 博客,请务必保留此出处http://dba10g.blog.51cto.com/764602/245912
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: