论坛首页 Java企业应用论坛

关于在Hibernate中高效的处理Tree结构?

浏览 46838 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-12-21  
xml难解析,干吗用xml呀,关系数据库数据库不好么?
系统大部分都用关系数据库,就一小块用xml,sql查询和xml查找混在一起,岂不是很别扭哟?
   树形数据结构的例子在现实也常见的,比如权限管理中组等等。
0 请登录后投票
   发表时间:2004-12-21  
http://dbazine.com/tropashko4.shtml
hibernate blog给的引用。
0 请登录后投票
   发表时间:2004-12-21  
楼上的引用,非常不错!

这不单单是HB的应用(其实我平时的时候也用,只不过没有想到,其实HQL也可以,真是蠢).
0 请登录后投票
   发表时间:2004-12-21  
可是……是不是不太直观呢,如果树很庞大的话还可以。
比较小的树迭代一下就够了吧。
0 请登录后投票
   发表时间:2005-08-12  
dkmilk 写道
我是直接改了hibernate让他支持connect by prior
因为我只用oracle.


请问dkmilk 是怎样修改的?
unexpected token: connect [from com.adasoft.department.model.SmsDepart t connect by prior t.id = t.parentID start with t.parentID =0];
0 请登录后投票
   发表时间:2005-08-12  
oracle的上面有人贴了,我来补充db2的单条语句:with tree (code,upcode) as (select root.code,root.upcode from codetree root where root.upcode='0000' union all select child.code,child.upcode from tree parent,codetree child where parent.code=child.upcode) select code from tree
其他非主流的另想办法
0 请登录后投票
   发表时间:2005-08-23  
我是通过递归把其子父关系的数据全部取出来然后放在内存中。这样做如果是小数据就没有问题。如果是大数据,比如20万,那么hiberate把这20万个对象全部取出来,放在内存中。机器就这么的死了。我想如果能作成节点加载数据,那么这样应该不会出现类似的问题。不知道有没有更好的方法!!!
0 请登录后投票
   发表时间:2005-08-23  
dkmilk 写道
我是直接改了hibernate让他支持connect by prior
因为我只用oracle.

Hibernate是基于LGPL协议发布的,不知你有没有用于商业开发?
0 请登录后投票
   发表时间:2005-08-23  
z_jordon 写道
dkmilk 写道
我是直接改了hibernate让他支持connect by prior
因为我只用oracle.

Hibernate是基于LGPL协议发布的,不知你有没有用于商业开发?

偶记得LGPL和商业不冲突吧,如果修改了Hibernate,偶只要随商业产品提供修改过的Hibernate源代码即可,商业产品自己的源代码没有必要提供。

有谁可以确认一下?
0 请登录后投票
   发表时间:2005-08-23  
建个分类展开表应该就可以了,
该表描述的是父结点与所有子孙节点的关系,每次做增删改的时候要调整这个表,不过hibernate没试过
思路就是以编辑的复杂性换取查询的速度
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics