【发布时间】:2014-11-26 08:59:57
【问题描述】:
我有一个名为 User 的实体,它与名为 Company 的实体具有以下关系:
@Entity
public class User {
...
@ManyToOne
@JoinColumn(name="COMPANY_ID",referencedColumnName="ID")
private Company company = null;
...
}
在我的数据库中,我有一个带有“COMPANY_ID”列的用户表。如何使用此字段创建 JPA 条件查询?
使用标准生成器,我尝试了以下表达式但没有成功:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(User.class);
Root mockEntityRoot = cq.from(User.class);
//cq.where(cb.equal(mockEntityRoot.get("company"), 2));
//cq.where(cb.equal(mockEntityRoot.get("COMPANY_ID"), 12));
cq.where(cb.equal(mockEntityRoot.get("company.id"), 8));
entityManager.createQuery(cq).getResultList();
但我收到以下错误:“托管类型用户的属性 [company.id] 不存在。”
提前致谢。
【问题讨论】:
标签: java jpa persistence criteria-api