1

我正在尝试确保 hibernate 3.2.1 中的 EJBQL 功能支持以下功能,但是我的 google-fu 让我失望了。我只发现 EJB 2.x 不支持嵌套查询

我可以在这样的查询中输入查询:

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

1 回答 1

1

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

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

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

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

于 2012-10-10T21:03:29.530 回答