首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

100分解决Hibernate中的left outer join有关问题

2011-12-24 
100分解决Hibernate中的left outer join问题,在线等数据库:orcale9ihibernate 3.0left outer join语句在pl

100分解决Hibernate中的left outer join问题,在线等
数据库:orcale9i
hibernate 3.0
left outer join语句在plsql 运行正常,改成hql语句后,却报错误,不知道什么原因,请大家帮忙解决!

hql语句:
StringBuffer hsqlOneLine = new StringBuffer("select new Map(a.bank_code as bankCode,a.bank_name as bankName,a.bank_type as bankType,a.type_name " +
" as typeName,a.bif_code as bifCode,b.bankAcc as bankAcc,b.accName as accName,b.accType as accType,b.isgather as isGather,c.bankBal as bankBal,c.balDate as balDate ) from BtBankAcc b "+
" left outer join VBanKTypeAndBanK a on b.btBank.bankCode = a.bank_code "+
" left outer join BisAccHisBal c on b.bankAcc = c.id.bankAcc "+
" and b.validSign=1 and b.accountstate <> 4 "+ 
" and b.bisType=? "+
" and c.balDate=to_date(?,'yyyy-MM-dd')");



[解决办法]
对spring不是很懂,关注下!
[解决办法]
怎么错误信息和你贴得sql问不一样呢
com.bmcc.fundmgt.bank.pojo.BtBankAcc b
这是什么?
[解决办法]
hql.append("SELECT {a.*},{b.*} "); 为什么要用大括号,能解释一下吗? 

这个是hibernate的规定,查询entity的映射就是这么写的
[解决办法]
这样的写法用在spring+hibernate+struts项目中是没有问题的
我写这些只是给你个例子参考
大括号的意思是取实体类,我的写法是要取两个相关联的实体类
[解决办法]
我个人不太喜欢用new Map()这种方式
一般我是把需要取的实体都取出,然后从中得到我需要的值。
把这些需要的值再放到一个JavaBean中作为DTO。
[解决办法]
其实完全可以利用HBM。XML来配置这种查询,或者不行直接用named query好了。。。何必搞的这么麻烦呢

热点排行