我想知道是否可以在@Query批注中包含子查询(org.springframework.data.jpa.repository.Query;)

我在第一个子查询括号上得到QuerySyntaxException。

这是我的查询

@Query(value="select c1 from ComplaintModel c1, "
+ "(select c2.id, min(cb.termDate) minDate from ComplaintModel c2 "
+ "join c2.complaintBullets cb join cb.status s where s.code = ?1 "
+ "group by c2.id) tmp where c1.id = tmp.id order by tmp.minDate")


谢谢!

最佳答案

不可以,JPQL查询的select子句中不能有子查询。

JPQL在WHERE和HAVING子句中支持子查询。它可以(至少)是ANY,SOME,ALL,IN,EXIST表达式的一部分,并且当然可以用于常规条件表达式:

SELECT a
FROM A a
WHERE a.val = (SELECT b.someval
               FROM B b
               WHERE b.someotherval=3)

10-05 21:00
查看更多