【发布时间】:2020-01-30 19:18:26
【问题描述】:
有一个实体 Items 有一个名为 categories 的集合字段,我需要找到至少属于两个特定类别的项目,但我找不到方法构建正确的 JPQL 查询。
@Entity
public class Items {
@ManyToMany (fetch = FetchType.EAGER)
private List<Category> categories;
}
我可以找到具有一个类别的项目:
SELECT i FROM Item i WHERE :cat MEMBER OF item.categories
我可以选择多个类别中的任何一个:
SELECT i FROM Item i WHERE :cat1 MEMBER OF item.categories OR :cat MEMBER OF item.categories
但是当我尝试选择至少有两个特定类别的项目时,以下查询没有得到任何项目:
SELECT i FROM Item i WHERE :cat1 MEMBER OF item.categories AND :cat2 MEMBER OF item.categories
这样做的正确方法是什么?
最好的问候, 巴勃罗。
【问题讨论】:
-
您是否有具有项目到类别关系的实体?
-
我的意思是 ItemsCategories 实体
-
是的,Category实体与Item实体有ManyToMany关系:@ManyToMany (fetch = FetchType.EAGER) private List
categories;
标签: jpa many-to-many jpql