在hibernate中使用sql进行联表查询时出现错误 ORA-00918: 未明确定义列
sql语句:
select b.*,c.*,d.*,e.* from B_COLLECT_INFO b,B_SPECIMEN_CLASS_TABLE c,B_SPECIMEN_CLASS_TABLE d,B_SPECIMEN_CLASS_TABLE e where c.CLASS_ID(+)= b.ORDERS and d.CLASS_ID (+)= b.FAMILY and e.CLASS_ID(+)= b.GENUS
hibernate生成的语句:
Hibernate: select b.*,c.*,d.*,e.* from B_COLLECT_INFO b,B_SPECIMEN_CLASS_TABLE c,B_SPECIMEN_CLASS_TABLE d,B_SPECIMEN_CLASS_TABLE e where c.CLASS_ID(+)= b.ORDERS and d.CLASS_ID (+)= b.FAMILY and e.CLASS_ID(+)= b.GENUS
这一条是可以执行的 没有错误。但是加上分页的时候,生成的sql语句就有错了:
Hibernate: select * from ( select b.*,c.*,d.*,e.* from B_COLLECT_INFO b,B_SPECIMEN_CLASS_TABLE c,B_SPECIMEN_CLASS_TABLE d,B_SPECIMEN_CLASS_TABLE e where c.CLASS_ID(+)= b.ORDERS and d.CLASS_ID (+)= b.FAMILY and e.CLASS_ID(+)= b.GENUS ) where rownum <= ?
这是分页生成的sql语句,可能是分页语句里面的select * 导致了错误的出现。
请问有没有解决的办法,或者有其他的方法解决这个问题 谢谢了。
Hibernate sql select
------解决方案--------------------
对不起,应该不是上午说的那个错误。
我觉得应该是这样,楼主试一下
select x.* from ( select b.*,c.*,d.*,e.* from B_COLLECT_INFO b,B_SPECIMEN_CLASS_TABLE c,B_SPECIMEN_CLASS_TABLE d,B_SPECIMEN_CLASS_TABLE e where c.CLASS_ID(+)= b.ORDERS and d.CLASS_ID (+)= b.FAMILY and e.CLASS_ID(+)= b.GENUS ) x where rownum <= ?