【发布时间】:2023-03-26 02:07:01
【问题描述】:
我有两个休眠映射实体 A 和 B。
A 有 2 个实体 B 集合,我想根据 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 有关的异常吗?
任何指针?
【问题讨论】:
-
你能添加更多的堆栈跟踪吗?
标签: hibernate