簡體   English   中英

當Entity類具有子類(可嵌入的ID)時,使用JPA Criteria API選擇查詢

[英]Select query with JPA Criteria API When Entity class has a child class (Embeddable id)

我是JPA的新手。

我在以下鏈接中找到了如何使用JPA標准API: 具有多個參數的JPA標准API

謂詞的代碼為:

Root<CustomerEntity > customerEntity = cq.from(CustomerEntity.class);
List<Predicate> predicates = new ArrayList<Predicate>();
//Adding predicates in case of parameter not being null
    if (param1 != null) {
        predicates.add(
                qb.equal(customerEntity.get("fieldName"), param1));
    }

但是我的客戶實體類具有可嵌入的ID(復合主鍵)

在這種情況下如何使用JPA條件API

所有可嵌入的id對象值也是搜索(選擇查詢)所必需的嗎?

您必須執行2個步驟:

在可嵌入對象上實現equals和hashcode

像普通一樣創建謂詞

  predicates.add(
            qb.equal(customerEntity.get("id"), embeddableId));

更新您不能在不填充其所有值的情況下按整個對象進行搜索。 要僅搜索一個屬性,只需遍歷路徑並進行比較

predicates.add(
            qb.equal(customerEntity.get("id").get("property1"), embeddableId.getProperty1()));

希望這會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM