hibernate的hql语句问题

yzf555 2008-06-03 07:29:39

我在使用Hibernate的hql语句时出错了,这个问题已经困恼了我一个下午了,找了好久都没找着错误!还请各位大虾指点迷津!我在此先谢谢了!

当hql语句为内连接时错了
程序代码如下:
String hsql = "select distinct a.id,a.account,a.name,a.email,a.mobile,"
+ "a.registerDateTime,a.lastLoginDateTime from Member a join MemberWalletLine b "
+ "on a.id=b.memberId where a.agentId=:agentId and b.transType=0 order by a.id desc";
Query query = session.createQuery(hsql);
query.setParameter("agentId", agentId);
query.list();
当语句执行到 session.createQuery(hsql); 程序就出错了!
错误描述如下:
2008-6-3 19:03:41 org.hibernate.hql.ast.ErrorCounter reportError
严重: line 1:162: unexpected token: on


而我采用多表连接时,又成功了!
程序代码如下:
String hsql = "select distinct a.id,a.account,a.name,a.email,a.mobile,"
+ "a.registerDateTime,a.lastLoginDateTime from Member a ,MemberWalletLine b "
+ "where a.id=b.memberId and a.agentId=:agentId and b.transType=0 order by a.id desc";
Query query = session.createQuery(hsql);
query.setParameter("agentId", agentId);
query.list();
据专业人士说,采用这种多表查询的效率低下,而才用那种左右外连接的效率比多表查询就要高很多!
多表查询例子: select a.* ,b.* from tableA as a,tableB as b where a.id = b.id ;

我现在是想用上面那种方案,怎样修改上面的hql语句问题了?
...全文
248 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
minbing 2008-06-04
  • 打赏
  • 举报
回复
用Hibernate就不用这样子了啊,用级联查询,VO及配置上改下,建议楼主看看级联。
whetu 2008-06-03
  • 打赏
  • 举报
回复
根据错误提示来看hql中,不识别on

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧