0
我有一個名爲用戶的實體,它具有以下關係的實體,稱爲公司:JPA標準 - 基於數據庫字段名錶述
@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]從管理型用戶不存在。 「
在此先感謝。
嗨獅子座,非常感謝的提示答案。我使用以下謂詞測試了您的方法: '加入<用戶,公司> userCompanyJoin = mockEntityRoot.join(「company」); (cb.equal(userCompanyJoin.get(「id」),exampleObject.getCompany()。getId()));'和它的工作原理! (cb.equal(mockEntityRoot.get(「company」).get(「id」),exampleObject.getCompany()。getId()));'並且這有相同的成功行爲。 再次感謝您的幫助。 – rbezerra 2014-10-01 14:11:23