hibernate的hql语句问题
我在使用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语句问题了?