查询中的Hibernate 3.2.1和EJBQL查询

时间:2012-10-10 20:06:32

标签: hibernate ejb ejbql

我正在尝试确保hibernate 3.2.1中的EJBQL功能支持以下内容,但我的google-fu失败了。 我发现所有内容都是EJB 2.x

中不支持嵌套查询

我可以在这样的查询中放置查询:

select count(*) from 
    (select myField from myTable group by myField having sum(case.....) ....... )

1 个答案:

答案 0 :(得分:1)

EBJQL不支持from子句中的子查询(您可以在selectwhere中使用它们),因此无法执行此精确查询。您可以尝试重写查询,在您的情况下,以下内容应该是等效的:

select count(distinct e.myField) from myEntity e group by e.myField having ...

或者,只需使用createNativeQuery()并使用原始查询,而无需在HQL中重写它。这当然会打破便携性。

提示:如果您正在使用Eclipse,请从http://www.jboss.org/tools或市场获取Hibernate插件。它允许您直接从IDE编写和执行查询(请参阅Hibernate工具文档中的query prototyping)。其他IDE也可以具有类似的功能。