簡體   English   中英

休眠標准.setFetchMode(屬性,模式)不適用於實體中的子屬性

[英]Hibernate criteria.setFetchMode(property, mode) is not working for child property in an entity

我定義了一個類;

@Entity

@Table(name = "atg", uniqueConstraints = @UniqueConstraint(columnNames = "code"))
public class ATG{

    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "companyid")
    Manufacturer manufacturer;
..
}

當我嘗試通過制造商獲取ATG實體時,我會設置為;

criteria.setFetchMode("manufacturer", FetchMode.JOIN);

那是可行的。 意味着我得到了制造商的詳細信息。

我將制造商類定義為:

@Entity
public class Manufacturer{

@OneToMany( mappedBy="manufacturer")
private List<Site> sites;

}

我也想獲取站點對象。 所以,我確實喜歡

criteria.setFetchMode("manufacturer.sites", FetchMode.JOIN);

但這是行不通的。 也就是說,我無法獲得網站列表。

在這種情況下,我應該如何使用FetchMode.Join?

您可以嘗試將createAlias()放入條件中。 查看樣本

criteria.createAlias("manufacturer.sites","site",CriteriaSPecification.LEFT_JOIN);

criteria.setFetchMode("site", FetchMode.JOIN);

暫無
暫無

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

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