4
我下面的DB模式:如何筛选JPQL查询中的子集合?
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
包含所有产品 - 不仅这些与活跃变种。
如何过滤在单个查询中处于非活动状态的产品(或变体)?
Here是一个带数据库结构和样本数据的postgres脚本。对于给定的数据两类(CAT 1,CAT 2),两种产品(PROD 1,PROD 2)和三个变体(VAR 1,VAR 2,VAR 3)应被退回。