ContactInfo 類的數(shù)據庫中有一個表?,F(xiàn)在我想找到customerId = id 和 isDeleted = false 的值 private EntityManager entityManager; public ContactInfo findById(long id) { CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuery<ContactInfo> criteria = builder.createQuery( ContactInfo.class ); Root<ContactInfo> root = criteria.from(ContactInfo.class); criteria.select(root).where( builder.equal(root.get("customerId"), id), builder.equal(root.get("isDeleted"), false) ); return entityManager.createQuery(criteria).getSingleResult();}聯(lián)系信息類:public class ContactInfo extends BaseInfo { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long cntId; @Column(columnDefinition="TEXT",length=4000) private String data; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name="customer_id") private PersonalInfo customer; public ContactInfo(){ } public ContactInfo(Long id) { this.cntId = id; }}個人信息類:public class PersonalInfo extends BaseInfo { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long customerId;// private Long cardId;//}基礎信息類:abstract public class BaseInfo { @CreatedDate private Date createdDate; @CreatedBy private String createdBy; @LastModifiedDate private Date modifiedDate; @LastModifiedBy private String modifiedBy; @Column(columnDefinition = "boolean default false", nullable = false) private boolean isDeleted;}如何繞過以下錯誤。提前致謝。 錯誤
1 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
您的customerId存在于PersonalInfo實體中,因此您的條件查詢應如下所示。
criteria.select(root).where(
builder.equal(root.get("customer").get("customerId"), id)
);
請試試這個。
我希望這能解決你的問題。
添加回答
舉報
0/150
提交
取消