【问题标题】:Oracle query to JPA query conversionOracle 查询到 JPA 查询的转换
【发布时间】:2012-07-25 07:41:57
【问题描述】:

是否可以将以下 oracle 查询转换为 JPA

Select o.parent_id,o.group_id,
       (
         Select count(*) 
           From x_group g 
          Where g.parent_id=o.group_id
        ) 
 From x_group o 
Where o.parent_id='ABC' 

【问题讨论】:

  • 是的,这是可能的。去做吧,尝试一下。

标签: java oracle hibernate jpa


【解决方案1】:

根据 JPA 规范(我检查了 v1 和 2.0),这是不可能的。在第 4.6.16 节(JPA 2.0 规范)中它指出:

子查询可以用在 WHERE 或 HAVING 子句中。[58]

因此,您可能会考虑在这种情况下使用本机查询,或者重写您的查询。

【讨论】:

  • Hibernate 在 select 子句中支持它们。这个问题被标记为休眠。
  • 尽管 Hibernate 支持它,但 JPA 不支持它作为抽象层,至少根据规范。但是,当使用 Hibernate 作为 JPA 提供程序(作为 JPQL 查询)时,它可能仍然有效,但这距离 JPA 规范只有一小步。
猜你喜欢
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 2021-01-31
  • 1970-01-01
  • 2018-02-28
  • 2018-03-13
相关资源
最近更新 更多