簡體   English   中英

休眠條件列表必須包含另一個列表

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

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