我在学习jpa-hibernate基础知识。
我有一个关于获取所有用户的查询:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
cq.select(cq.from(Utente.class));
return getEntityManager().createQuery(cq).getResultList();现在,我想通过一个名为“鬼怪”的布尔字段进行筛选,其中它等于true (或者false,它取决于)。
翻译:
选择*从用户那里鬼= 0;
我必须使用cq.where()吗?多么?
发布于 2012-05-14 10:31:45
是的,你必须使用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);https://stackoverflow.com/questions/10581429
复制相似问题