【问题标题】:Sub-Query in Spring Data JpaSpring Data Jpa 中的子查询
【发布时间】:2019-02-28 12:18:03
【问题描述】:

我在 jpql 中有这样的查询

select new com.example.CustomGroup(m.id, m.title, (select count(w.id) from MessageGroup x join x.messages w where w.readers.id <> ?1) ) 
from MessageGroup m join m.members u where u.id = ?1

但不起作用,我知道 jpa 2 支持 select 中的子查询,但找不到任何关于如何使用它的参考

【问题讨论】:

  • “不工作”是什么意思?你有例外吗? Hibernate 生成的 SQL 看起来如何?您将如何在 SQL 中执行该查询?
  • 首先告诉人们您正在使用哪个 JPA 提供程序。这是 ACTUAL 查询,还是查询“类似”这个(因此在您的语句中使用“like”字样)?

标签: jpa spring-data-jpa jpa-2.1


【解决方案1】:

引自 JPA 2.2 规范,第 4.6.16 段:

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

[66] 在此版本中,子查询仅限于 WHERE 和 HAVING 子句。 FROM 子句中的子查询支持将在本规范的后续版本中考虑。

【讨论】:

    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2015-08-04
    相关资源
    最近更新 更多