[英]Hibernate + JPA @Filter for Nested Property Object
因此,我了解了如何将JPA / Hibernate过滤器用于即时子属性(在此处进行了演示: 用于过滤@OneToMany关联结果的批注 ),但是我想做的是使用嵌套属性来排除引用。 因此,如果C没有作为B的参考有效,则我不希望B包含在集合中。 这是无效的代码示例。 它抱怨c.Active在where列中未知。 这是因为生成的sql包含c_0.is_active作为参考。 有没有办法做这样的事情?
@Entity
public class A implements Serializable{
@Id
@Column(name = "REF")
private int ref;
@OneToMany
@JoinColumn(name = "A_REF", referencedColumnName = "REF")
@Filter(name="test")
private Set<B> bs;
}
@Entity
@FilterDef(name="test", defaultCondition="c.ACTIVE = 1")
public class B implements Serializable{
@Id
@Column(name = "A_REF")
private int aRef;
private C cObject;
}
@Entity
public class C implements Serializable{
@Id
private int ref;
@Column(name = "ACTIVE")
private boolean active;
}
我认为您不能以这种方式使用对其他表的引用。
尝试这个:
@Entity
@FilterDef(name="test", defaultCondition="aRef =
(select b.aRef
from B b inner join C c on c.ref = b.cRef
where c.ACTIVE = 1)"
public class B implements Serializable{
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.