我正在学习 jpa-hibernate 基础知识。
我有这个查询来获取所有用户:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
cq.select(cq.from(Utente.class));
return getEntityManager().createQuery(cq).getResultList();
现在我想通过一个名为“ghost”的 bool 字段进行过滤,它等于真(或假,视情况而定)。
翻译:
我必须使用 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/