我有一个拥有标签集合的实体
@ManyToMany
private Set<Tag> listeTag;
我想编写一个查询,该查询返回我的实体列表,其中包含在参数中传递的所有标签,而不仅仅是这样的一个。
select distinct entity from Entity entity where and entity.listeTag in :listeTag
如果listeTag
中有两个标签我只想要至少包含两个标签的实体。
答案 0 :(得分:0)
select e from SomeEntity e where :numberOfTagsInSet =
(select count(tag.id) from SomeEntity e2
join e2.listeTag tag
where e.id = e2.id
and tag.id in :setOfTagIds)
这应该可以解决问题。