Opa*_*pal 5 java spring jpa jpql spring-data
我有以下数据库模型:
Category -< ProductCategory >- Product -< Variant
Run Code Online (Sandbox Code Playgroud)
(与具有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")
Run Code Online (Sandbox Code Playgroud)
它运作良好-准确地返回类别-但是每个类别都Category包含所有产品- 不仅是具有有效变体的产品。
如何过滤掉在单个查询中无效的产品(或变体)?
这是一个Postgres脚本,其中包含数据库结构和示例数据。对于给定的数据,应该返回两个类别(CAT 1,CAT 2),两个乘积(PROD 1,PROD 2)和三个变体(VAR 1,VAR 2,VAR 3)。
ezt*_*tam 10
我遇到了完全相同的问题,我花了一段时间才弄清楚这是如何工作的。当FETCH您JOIN像这样添加时,应过滤子列表:
SELECT DISTINCT c FROM Category c JOIN FETCH c.products as p join p.variants as pv where pv.active = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3192 次 |
| 最近记录: |