我是 Spring Data JPA
的新手,想知道如何编写以下子查询:
select o from Owner o where o.ownerId IN (Select c.ownerId from Cars c)
Owner
是一个实体类,Cars
是另一个实体类,我将拥有两个存储库,一个是 OwnerRepository
,另一个是作为 CarRepository
,都扩展了 JPARepository
。
在使用 IN
运算符编写此类自定义查询时需要帮助。
提前致谢。
最佳答案
您始终可以将查询用作自定义查询:
@Query(value = "select o from Owner o where o.ownerId IN (Select c.ownerId from Cars c")
Owner getOwner();
如果您需要将变量传递给查询,请使用 @Param
标记,如下所示:
@Query(value = "SELECT * FROM Owner o WHERE o.ownerId = :id")
Owner getOwnerWithId(@Param("id") Long id);
关于java - Spring 数据 JPA : How to write subquery having IN operator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37350778/