语法 where 子句与条件协商
Syntax where clause in consultation with criteria
我需要在我的查询中放置一个 where 子句,但我没有找到正确的语法。
/*
* Support listing and POSTing back Origem entities (e.g. from inside an
* HtmlSelectOneMenu)
*/
public List<Origem> getAll()
{
CriteriaBuilder cb = this.entityManager.getCriteriaBuilder();
CriteriaQuery<Origem> criteria = cb.createQuery(Origem.class);
Root<Origem> root = criteria.from(Origem.class);
return this.entityManager.createQuery(
criteria.select(root).where())
.getResultList();
}
在我的 where 子句中,想要将所有 "origem" 的 ID 等于登录用户。
像这样:
例如:select * from origin where origem.id = loginBean.origem.getId
使用criteria.addRestrictions(Restrictions.eq("propertyName","propertyValue");
public 列表 getAll(long idFromLoginBeanOrigin)
{
CriteriaBuilder cb = this.entityManager.getCriteriaBuilder();
CriteriaQuery<Origem> criteria = cb.createQuery(Origem.class);
criteria.add(Restrictions.eq("origem.id", idFromLoginBeanOrigin));
Root<Origem> root = criteria.from(Origem.class);
return this.entityManager.createQuery(
criteria.select(root).where())
.getResultList();
}
我现在输入可能有错字,请检查!
只需将 criteria.add(Restrictions.eq()) 用于您的标准,我认为如果 id 是唯一的,您需要使用 .uniqueResult()
要根据您的标准获得想要的结果,您的代码应该是这样的:
CriteriaBuilder cb = this.entityManager.getCriteriaBuilder();
Criteria cr = cb.createCriteria(Origem.class);
// add the restriction here
cr.add(Restrictions.eq("id", loginBean.origem.getId));
Origem root = (Origem) cr.uniqueResult();
我需要在我的查询中放置一个 where 子句,但我没有找到正确的语法。
/*
* Support listing and POSTing back Origem entities (e.g. from inside an
* HtmlSelectOneMenu)
*/
public List<Origem> getAll()
{
CriteriaBuilder cb = this.entityManager.getCriteriaBuilder();
CriteriaQuery<Origem> criteria = cb.createQuery(Origem.class);
Root<Origem> root = criteria.from(Origem.class);
return this.entityManager.createQuery(
criteria.select(root).where())
.getResultList();
}
在我的 where 子句中,想要将所有 "origem" 的 ID 等于登录用户。 像这样:
例如:select * from origin where origem.id = loginBean.origem.getId
使用criteria.addRestrictions(Restrictions.eq("propertyName","propertyValue");
public 列表 getAll(long idFromLoginBeanOrigin) {
CriteriaBuilder cb = this.entityManager.getCriteriaBuilder();
CriteriaQuery<Origem> criteria = cb.createQuery(Origem.class);
criteria.add(Restrictions.eq("origem.id", idFromLoginBeanOrigin));
Root<Origem> root = criteria.from(Origem.class);
return this.entityManager.createQuery(
criteria.select(root).where())
.getResultList();
}
我现在输入可能有错字,请检查!
只需将 criteria.add(Restrictions.eq()) 用于您的标准,我认为如果 id 是唯一的,您需要使用 .uniqueResult()
要根据您的标准获得想要的结果,您的代码应该是这样的:
CriteriaBuilder cb = this.entityManager.getCriteriaBuilder();
Criteria cr = cb.createCriteria(Origem.class);
// add the restriction here
cr.add(Restrictions.eq("id", loginBean.origem.getId));
Origem root = (Origem) cr.uniqueResult();