用于筛选@OneToMany关联的结果的批注
我在两个表之间有父/子关系,在我的Java类中有相应的映射。这些表大致如下所示:
A (ref number, stuff varchar2(4000))
B (a_ref number, other number, foo varchar2(200))
和 Java 代码:
@Entity
class A {
@Id
@Column(name = "REF")
private int ref;
@OneToMany
@JoinColumn(name = "A_REF", referencedName = "REF")
private Set<B> bs;
}
@Entity
class B {
@Id
@Column(name = "A_REF")
private int aRef;
@Id
@Column(name = "OTHER")
private int other;
}
这工作正常,但我想在从子表中检索的行上添加一个筛选器。生成的查询如下所示:
select a_ref, other, foo from B where a_ref = ?
我希望它是:
select a_ref, other, foo from B where a_ref = ? and other = 123
附加筛选器将只是一个列名和一个硬编码值。有没有办法使用休眠注释来做到这一点?
我已经看过了,但我总是必须从父表中引用列名(在JoinFormula的属性中)。@JoinFormula
name
提前感谢您的任何建议。