HIHERNATE双表查询
a、类型表(类型ID、类型名称、父类型ID)t_protype(proclassid,TypeName,profclassid)
b、资源表(资源ID、类型ID、资源名称、适用科室)t_article(articleid,proclassid,articleName,remark)
类型表有多层,类似于树状结构。 节点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 递归.
谢谢各位大狭指点: