java - Spring 数据 JPA : How to write subquery having IN operator

标签 java spring jpa spring-data spring-data-jpa

我是 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/

相关文章:

java - 为什么 LinkedHashMap keyset() 不返回 LinkedHashSet vs Set?

spring - 按逻辑顺序进行 JSR-303 验证

java - 在jsp中获取当前页面的apache tiles

java - 在这种情况下,CommandLineRunner 做了什么?

java - 使用 JPA/Hibernate 保持数据库连接

java - html 表单 - 提交搜索

java - JTextField 焦点未集中在第一次单击 Tab 按钮上

java - Jboss (6.4 EAP) 到 WebSphere (7.x)

java - 我是否必须为双向关系设置双方?

java - Hibernate 注释映射比 hbm.xml 映射花费更多时间