[英]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.