在Hibernate的from子句中选择语句

时间:2011-07-12 12:49:58

标签: hibernate sql

我有三个名为:

的表
  • schedule (id, status)
  • criteis (id, name, number, bank)
  • info (id, compleInfo)

id对于所有三个表都是通用的。

我的需求是我想要银行,来自crities table& amp;来自信息表的compleInfo和Schedule表中的状态计数。

我使用了这个查询

select count(s.status), a.compleInfo, a.bank, a.number 
from (select in.compleInfo, cr.bank, cr.number 
      from criteis cr, info in  where cr.id=in.id ) a
left join schedule s on a.id = s.id group by a.id

它在MYSQL编辑器上工作正常,但是当我在Hibernate上运行它时,我遇到了异常

  

引起:java.lang.IllegalArgumentException:   org.hibernate.hql.ast.QuerySyntaxException:意外令牌:(近   第1行,[select count(s.status),a.compleInfo,a.bank,a.number from   (选择in.compleInfo,cr.bank,cr.number from criteis cr,info in   其中cr.id = in.id)a.id = s.id group by的左连接调度s   a.id]

我用Google搜索并发现Nhibernate HQL Subselect queries hql不支持from子句中的子查询。

还有其他方法可以在Hibernate中编写上述查询吗?

1 个答案:

答案 0 :(得分:2)

HQL允许您遍历对象树,但它不是SQL。

如果要运行SQL查询,则必须使用native SQL queries