gpt4 book ai didi

jpa - 简单 JPA 2 条件查询 "where"条件

转载 作者:行者123 更新时间:2023-12-01 10:06:00 27 4
gpt4 key购买 nike

我正在学习 jpa-hibernate 基础知识。

我有这个查询来获取所有用户:

CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
cq.select(cq.from(Utente.class));
return getEntityManager().createQuery(cq).getResultList();

现在我想通过一个名为“ghost”的 bool 字段进行过滤,它等于 true(或 false,这取决于)。

翻译:

SELECT * FROM users WHERE ghost = 0;

我必须使用 cq.where() 吗?怎么样?

最佳答案

是的,你必须使用 cq.where()

试试这样的:

Root<Utente> utente = cq.from(Utente.class);
boolean myCondition = true; // or false
Predicate predicate = cb.equal(utente.get(Utente_.ghost), myCondition);
cq.where(predicate);

我使用了应该自动生成的规范元模型类 Utente_。这避免了在键入字段名称时出错的风险,并增强了类型安全性。否则你可以使用

Predicate predicate = cb.equal(utente.get("ghost"), myCondition);

关于jpa - 简单 JPA 2 条件查询 "where"条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581429/

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