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 递归.
谢谢各位大狭指点:
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 递归.
谢谢各位大狭指点:
解决方案 »
- java 超链接邀请好友
- java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=18559
- javascript如何实现在线用户显示?
- 不知道有没有作WEB界面的组件,类似dorado的那种 ??它太方便了,就象开发c/s一样开发b/s软件 ??
- 百分求大家学习struts学习经历和经验
- 从一个数据库到另一个数据库的表内容复制怎么高效率实现?
- 求解struts的问题,我把simple跑不起来,高分相送!在线等待,分不够再给
- 中文乱码的问题的,太痛苦了啊
- 请问如何判断一个字符串是否数字,还有如何把int转换成string!!!高分请教!!!
- 有谁能帮我解决这个问题,我愿再加100分!!
- java怎么打包web网站
- hibernate级联删除
楼主【caibaoying】截止到2008-06-25 15:25:01的历史汇总数据(不包括此帖):
发帖数:43 发帖分:2487
结贴数:29 结贴分:1931
未结数:14 未结分:556
结贴率:67.44 % 结分率:77.64 %
楼主加油
2 你用过preOrder 算法吗? 就是有left right level的算法,这个可以用普通的SQL语句查出整个树,不过insert和update比较累一点。参考这个看看http://www.java2000.net/viewthread.jsp?tid=163
对于不是经常变更的树,或者查询性能优先的树,非常适合!
你这样无法转换的
可以直接执行sql
sql没能实现的了 最后改用代码实现了 呵呵