提问人:Igor Milovanovic 提问时间:10/13/2023 最后编辑:Igor Milovanovic 更新时间:10/13/2023 访问量:33
where 子句中抽象类的字段
Field from abstract class inside where clause
问:
您好,我有以下实体:
abstract Entity A {
long id;
boolean sharedField;
}
Entity B extends A {
string specificField;
@ManyToOne
@JoinColumn(name = "id_c")
private C c;
}
Entity C {
long id;
@OneToMany(mappedBy = "c", cascade = CascadeType.ALL)
@Where(clause = "sharedField = 'something'")
private List<B> bList;
}
因此,从 Hibernate 中,我在“where 子句”中得到了未知列“b.shared_field”
请注意,我的数据库中有表 A 的 id 和 shared_field 列,在表 B 中,我有 id(与表 A 中的相同)、id_c 和 specific_field。
有没有某种方法可以向 Hibernate(通过 Where 子句或其他方式)表明我只想拥有 B 表中满足以下条件的行。
我尝试添加NamedQuery,但没有用。
更新
我努力寻找路。这是我使用的@Where子句:
@Where(clause = "id IN (SELECT a.id FROM A a WHERE a.id = id AND a.shared_field = 'something')")
答:
0赞
Igor Milovanovic
10/13/2023
#1
@Where(clause = “id IN (SELECT a.id FROM A A WHERE a.id = id AND a.shared_field = 'something')”)
评论
@Entity
sharedField