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
<!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
相关文章推荐
- hibernate之多态关联(多态的多对一关联或者多态的一对一关联,利用joined-subclass)
- hibernate之多态关联(多态的一对多,利用joined-subclass)
- Hibernate继承映射:每个子类一张表(joined-subclass)表结构
- Hibernate继承映射:每个子类一张表(joined-subclass)表结构
- [原创]java WEB学习笔记87:Hibernate学习之路-- -映射 继承关系(subclass , joined-subclass,union-subclass )
- hibernate 继承映射 joined-subclass
- hibernate——继承关系以及三个subclass标签的区别
- hibernate 继承映射 joined-subclass
- Hibernate joined-subclass和subclass的配置文件
- hibernate——继承关系以及三个subclass标签的区别
- hibernate——继承关系以及三个subclass标签的区别- 一对多,多对多
- hibernate——继承关系以及三个subclass标签的区别
- hibernate 继承映射joined-subclass
- Hibernate深入学习(三):继承与多态查询,joined-subclass与union-subclass
- Hibernate 继承关系 对象关系映射--joined-subclass ,测试 crud
- hibernate 继承映射subclass
- hibernate里inverse与cascade标签的作用以及区别
- Hibernate常用Annotation标签说明
- Hibernate常用Annotation标签说明
- Hibernate常用Annotation标签说明