![](/img/trans.png)
[英]Is there any criterion for hibernate criteria to cover contains condition of list
[英]Hibernate criteria list must contains another list
給定簡化模型:
public class Access {
private Set<Tag> tags;
}
public class Item {
private Set<Tag> tags;
}
訪問權限授予對完全包含其標簽的每個項目的訪問權限,而該項目是否具有更多標簽則沒有問題。
但是我不知道如何為此創建休眠條件查詢。 你可以幫幫我嗎?
實際上,您不需要執行任何其他操作,而是告訴Hibernate始終隨您的實體一起加載它。
因此,選擇一,始終加載:
public class Access {
@OneToMany(cascade = {CascadeType.ALL}, orphanRemoval = true, targetEntity = Tag.class, fetch = FetchType.EAGER)
@JoinColumn(nullable = true)
protected Set<Tag> tags;
}
因此, OneToMany注釋告訴Hibernate在鏈接到您的表的Tag表中查找標簽,並始終執行此操作: FetchType.EAGER
。
實際上,Hibernate將在Tag表中創建兩個帶有外鍵的表。
如果您不想延遲加載此列表,可以設置FetchType.LAZY
,然后需要做一些額外的工作才能填充此列表。
一個簡單的加載將填滿所有存儲的值:
session.get(Access.class, key);
通過標簽過濾訪問列表可以看到以下答案: 如何在Hibernate下加入兩個不同的條件?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.