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)應被退回。