我有兩個休眠映射實體A和B.使用@Filter冬眠註釋在java中過濾收集
A有實體B的2集,我想基於在B持有的屬性過濾每個集合(如下面的代碼所示)。
@FilterDefs()
class A{
@OneToMany(mappedBy = "productType", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Filter(name = "something", condition = "entityType = 'SKU1'")
Set<B> set1 = new HashSet<B>();
@OneToMany(mappedBy = "productType", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Filter(name = "something", condition = "entityType = 'SKU2'")
Set<B> set2 = new HashSet<B>();
}
class B{
@ManyToOne(cascade = CascadeType.ALL)
private A productType;
@Column(name = "entity_type")
@Enumerated(EnumType.STRING)
private EntityType entityType;
}
編輯: 我使過濾器在我的DAO方法如下建議。不過,我收到以下異常
org.hibernate.exception.SQLGrammarException:無法初始化 收集
如果我用渴望的加載方法,我得到一個異常做生成無效的SQL?
任何指針?
您可以添加更多的堆棧跟蹤? – ssedano