【问题标题】:Spring Data JPA : How to write subquery having IN operatorSpring Data JPA:如何编写具有 IN 运算符的子查询
【发布时间】:2016-05-20 15:50:02
【问题描述】:

我是Spring Data JPA 的新手,想知道如何编写以下子查询:

select o from Owner o where o.ownerId IN (Select c.ownerId from Cars c)

这里Owner 是一个实体类,Cars 是另一个实体类,我将拥有两个存储库,一个为OwnerRepository,另一个为CarRepository,均扩展JPARepository

在使用 IN 运算符编写此类自定义查询时需要帮助。

提前致谢。

【问题讨论】:

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


【解决方案1】:

您始终可以将您的查询用作自定义查询:

@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);

【讨论】:

  • 也看看this
  • 只要您的示例使用 JPQL,nativeQuery = true 就应该省略。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 2019-06-21
  • 2019-02-28
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多