gpt4 book ai didi

java - 排除带有 JPQL "not in"的项目

转载 作者:行者123 更新时间:2023-12-01 14:46:34 26 4
gpt4 key购买 nike

我想使用以下 JPQL 查询排除带有某些标签的项目:

select distinct i from Item i join i.tags t where t not in (:excludedTags)

如果item只有一个tag并且此tag位于excludedTags列表中,则该方法有效。但是,如果该项目上有任何其他标签,它仍然会被选中!

模型的相关部分:

@Entity
class Tag {
@ManyToMany(mappedBy="tags")
var items
}

@Entity
class Item {
@ManyToMany
var tags
}

如何使用 JPQL 排除具有任何已排除标签的项目?

最佳答案

查询应该是这样的:

select distinct i from Item i where not exists (
select t from Item i2
join i2.tags tag
where i2.id = i.id
and tag.id in :excludedTags)

关于java - 排除带有 JPQL "not in"的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15391891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com