gpt4 book ai didi

java - 命名查询的等效条件查询

转载 作者:行者123 更新时间:2023-11-30 09:44:25 26 4
gpt4 key购买 nike

我的命名查询看起来像这样,感谢 here.

@NamedQuery(
name="Cat.favourites",
query="select c
from Usercat as uc
inner join uc.cat as c
where uc.isFavourtie = true
and uc.user = :user")

实现的调用如下所示:

Session session = sessionFactory.getCurrentSession();
Query query = session.getNamedQuery("Cat.favourites");
query.setEntity("user", myCurrentUser);
return query.list();

返回猫列表的等效条件查询是什么?

最佳答案

使用 JPA 2.0 标准:(这是您可以使用 JPA 2.0 Criteria api 实现此目的的众多方法之一)

final CriteriaQuery<Cat> cq = getCriteriaBuilder().createQuery(Cat.class);
final CriteriaBuilder cb = entityManager.getCriteriaBuilder();

final Root<Usercat> uc= cq.from(Usercat.class);

cq.select(uc.get("cat");

Predicate p = cb.equal(uc.get("favourtie", true);
p = cb.and(p, cb.equal(uc.get("user"), user));
cq.where(p);

final TypedQuery<Cat> typedQuery = entityManager.createQuery(cq);
return typedQuery.getResultList();

关于java - 命名查询的等效条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914607/

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