【问题标题】:Hibernate 3.2.1 and EJBQL query within query查询中的 Hibernate 3.2.1 和 EJBQL 查询
【发布时间】:2012-10-10 20:06:31
【问题描述】:

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

我可以在这样的查询中添加查询吗:

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

【问题讨论】:

    标签: hibernate ejb ejbql


    【解决方案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 也可能具有类似的功能。

    【讨论】:

    • 太棒了,应该这样做。 hibernate 插件也应该派上用场。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多