gpt4 book ai didi

jpa - JPQL 集合查询中集合的所有元素

转载 作者:行者123 更新时间:2023-12-03 18:32:45 25 4
gpt4 key购买 nike

我有一个用户类:

 @Entity
public class User implements Serializable {
//..
@ElementCollection(fetch = FetchType.EAGER)
Set<UserPrivs> privs;
//..
}

其中 UserPrivs - 枚举。

我想创建方法 List<User> getUsersByPrivs(Set<UserPrivs> privs) ,这将返回包含所有权限的所有用户。

我怎样才能做到这一点?

最佳答案

像这样使用 CriteriaBuilder?

List<User> getUsersByPrivs(Set<UserPrivs> privs) {
EntityManager em = getEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<User> cq = cb.createQuery(User.class);
final Root<User> u = cq.from(User.class);
List<Predicate> predicates = new ArrayList<>();
for (UserPrivs priv : privs) {
predicates.add(u.join("privs").in(Arrays.asList(priv)));
}
cq.where(cb.and(predicates.toArray(new Predicate[predicates.size()])));
return em.createQuery(cq).getResultList();
}

关于jpa - JPQL 集合查询中集合的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13342011/

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