a、类型表(类型ID、类型名称、父类型ID)t_protype(proclassid,TypeName,profclassid)  
  b、资源表(资源ID、类型ID、资源名称、适用科室)t_article(articleid,proclassid,articleName,re)  
    
  类型表有多层,类似于树状结构。  节点1--子节点1--孙节点1  
                                                                  --孙节点2  
                                                                  --孙节点3    
                                                                  子节点2--孙节点4  
                                                                  --孙节点5  
                                          ...................................  
    
  如何通过类型ID,查找所有属于它的资源列表,其中包括所有属于它的子节点所包含的资源?
select f.articleid,f.title from T_Article f where f.proclassid in(select proclassid from T_Protype start with proclassid='8a71e0fa1a3e009e011a46e9d73f0011' connect by prior proclassid = profclassid)经测试在PLSQL 环境下能运行出结果:找到'8a71e0fa1a3e009e011a46e9d73f0011' 结点下的所有资源换成HQL语句 from T_Article f where f.proclassid in(select proclassid from T_Protype start with proclassid='8a71e0fa1a3e009e011a46e9d73f0011' connect by prior proclassid = profclassid)
出错:
Caused by: java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)2008-06-25 15:23:02,046 ERROR [org.hibernate.hql.PARSER] - line 1:129: unexpected token: with;HIBERNATE3.1 不支持多表查询?或者不支持ORACLE中的 start with .... connect by  递归.
谢谢各位大狭指点:

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【caibaoying】截止到2008-06-25 15:25:01的历史汇总数据(不包括此帖):
    发帖数:43                 发帖分:2487               
    结贴数:29                 结贴分:1931               
    未结数:14                 未结分:556                
    结贴率:67.44 %            结分率:77.64 %            
    楼主加油
      

  2.   

    1 当然不支持,那是oracle的极特殊的功能
    2 你用过preOrder 算法吗? 就是有left right level的算法,这个可以用普通的SQL语句查出整个树,不过insert和update比较累一点。参考这个看看http://www.java2000.net/viewthread.jsp?tid=163
    对于不是经常变更的树,或者查询性能优先的树,非常适合!
      

  3.   

    纠正一下 是hibernate
    你这样无法转换的
    可以直接执行sql
      

  4.   

    恩`查了半天资料  都说不支持```不过是可以直接执行SQL语句
      

  5.   

    我是用递归加栈实现的 表结构和lz的差不多 还多了张权限表
    sql没能实现的了 最后改用代码实现了 呵呵