【发布时间】:2017-04-12 08:03:09
【问题描述】:
我有以下数据库模型:
Category -< ProductCategory >- Product -< Variant
(Category 与Product 具有多对多关系,Product 与Variant 具有一对多关系)
现在我需要获取所有具有活动变体产品的Category 记录。我通过以下 JPQL 查询获取这些对象:
@Query("select distinct c from Category c join c.products as p join p.variants as pv where pv.active = true")
效果很好 - 准确返回类别 - 但是每个 Category 都包含 所有 产品 - 不仅 这些具有 active 变体。
如何过滤掉在单个查询中处于非活动状态的产品(或变体)?
Here 是一个带有数据库结构和示例数据的 postgres 脚本。对于给定的数据,两个类别(CAT 1、CAT 2)、两个产品(PROD 1、PROD 2)并且应该返回三个变体(VAR 1、VAR 2、VAR 3)。
【问题讨论】:
标签: java spring jpa spring-data jpql