Fab*_* B. 3 jpa criteria jpa-2.0
我正在学习jpa-hibernate基础知识.
我有这个查询来获取所有用户:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
cq.select(cq.from(Utente.class));
return getEntityManager().createQuery(cq).getResultList();
Run Code Online (Sandbox Code Playgroud)
现在我想通过一个名为'ghost'的布尔字段进行过滤,其中它等于true(或者取决于它是假的).
翻译:
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);
Run Code Online (Sandbox Code Playgroud)
我在哪里使用了Utente_应该自动生成的规范元模型类.这避免了在键入字段名称时出错的风险,并增强了类型安全性.否则你可以使用
Predicate predicate = cb.equal(utente.get("ghost"), myCondition);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10375 次 |
| 最近记录: |