2011-07-12 48 views
2

我有三个表Select语句命名为:在from子句Hibernate中

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

id是所有三个表常见。

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

我已经使用这个查询

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 (select in.compleInfo,cr.bank ,来自criteis cr的cr.number,信息于 ,其中cr.id = in.id)左通过 a.id]

我GOOGLE了它,结果发现该Nhibernate HQL Subselect queries HQL不支持在子查询上a.id = s.id组加入时间表小号从条款。

是否有任何其他方式在Hibernate中编写上述查询?

回答

2

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

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

+0

+1该死的直接 – Bohemian

+0

非常感谢亚伦为您解答。 –