hibernate自关联的实现方式?

taigarz 2010-03-09 09:58:16
关于hibernate中自关联

一张具有父子关系的自关联表
id
name
pid

class A {
Integer id;
String name;
A parent;
}

使用hibernate装载一个A上来后,默认是会自动将parent也装载上来,
现在的问题是我装载
A
---B
------C
---------D
D上来 C B A 同时也成功装载上来了
但观察hibernat生成的sql只有两条

Hibernate:
select
producttyp0_.typeId as typeId3_1_,
producttyp0_.description as descript2_3_1_,
producttyp0_.name as name3_1_,
producttyp0_.parent_id as parent5_3_1_,
producttyp0_.visible as visible3_1_,
producttyp1_.typeId as typeId3_0_,
producttyp1_.description as descript2_3_0_,
producttyp1_.name as name3_0_,
producttyp1_.parent_id as parent5_3_0_,
producttyp1_.visible as visible3_0_
from
ProductType producttyp0_
left outer join
ProductType producttyp1_
on producttyp0_.parent_id=producttyp1_.typeId
where
producttyp0_.typeId=?
Hibernate:
select
producttyp0_.typeId as typeId3_1_,
producttyp0_.description as descript2_3_1_,
producttyp0_.name as name3_1_,
producttyp0_.parent_id as parent5_3_1_,
producttyp0_.visible as visible3_1_,
producttyp1_.typeId as typeId3_0_,
producttyp1_.description as descript2_3_0_,
producttyp1_.name as name3_0_,
producttyp1_.parent_id as parent5_3_0_,
producttyp1_.visible as visible3_0_
from
ProductType producttyp0_
left outer join
ProductType producttyp1_
on producttyp0_.parent_id=producttyp1_.typeId
where
producttyp0_.typeId=?
这是如何实现的?
...全文
282 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
taigarz 2010-03-11
  • 打赏
  • 举报
回复
问题是从头至尾只打印了两条sql出来
难道配置了show_sql不会把执行过的sql全部打印出来?
colin_pxx 2010-03-10
  • 打赏
  • 举报
回复
引用 1 楼 java2000_net 的回复:
    where
        producttyp0_.typeId=?

这个是带参数的,可以执行多次。

应该是这样
BearKin 2010-03-10
  • 打赏
  • 举报
回复
如果你有延迟加载的话那就应该是三条语句了吧 先实验下
Trinx 2010-03-10
  • 打赏
  • 举报
回复
好久没用过这东西,贴子先顶上去了。
老紫竹 2010-03-10
  • 打赏
  • 举报
回复
where
producttyp0_.typeId=?

这个是带参数的,可以执行多次。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧