gpt4 book ai didi

java - 如何表达不在M :N relation with JPA 2. 0 Criteria中?

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:48 24 4
gpt4 key购买 nike

如何使用 JPA 2.0 Criteria 表达查询,该查询应获取与实体 B 没有关系 (m:n) 的所有实体 A。

域模型:

@Entity class A{
@Id int id;
@ManyToMany List<B> disableForB;
}

@Entity class B{
@Id int id;
}

与此域模型相关的问题是:如何查找与特定 B 不存在关系 disableForB 的所有 A

最佳答案

我目前没有可用的环境来测试查询,因此以下内容可能包含一些错误。无论如何,这都是可行的 isNotMember .

B b ...
CriteriaQuery<Aa> cq = cb.createQuery(A.class);
ParameterExpression<B> param = cb.parameter(B.class);
Root<A> a = cq.from(A.class);
Expression<Collection<B>> disabledB = a.get("disableForB");
Predicate pred = cb.isNotMember(param, disabledB);
cq.select(a);
cq.where(pred);
em.createQuery(cq).setParameter(param, b).getResultList();

关于java - 如何表达不在M :N relation with JPA 2. 0 Criteria中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11414948/

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