【问题标题】:hibernate auto join conditions休眠自动加入条件
【发布时间】:2009-06-01 10:14:04
【问题描述】:
Hibernate 持久化类:
@实体
公共类 A {
@OneToMany(mappedBy = "a")
private Set<B> bSet = new HashSet<B>();
@Basic
private boolean DELETED;
}
B 类也有一个 DELETED 属性。我们如何在连接期间自动处理 DELETED 属性,仅选择未删除的实体。
可能需要一些注释的帮助。有可能吗?
【问题讨论】:
标签:
java
hibernate
join
persistence
【解决方案2】:
非常感谢!
这是我的决心:
@Entity
public class A extends DeletableEntity{
@OneToMany(mappedBy = "a")
@Where(clause = "DELETED=0 or DELETED is null")
private Set<B> bSet = new HashSet<B>();
public Set<B> getBSet() {
return bSet;
}
public void setBSet(Set<B> bSet) {
this.bSet = bSet;
}
}
和 HQL "select a.DELETED from A a join a.bSet bSet" 将生成原生 SQL,如下所示:
选择 a0_.DELETED as col_0_0_ from A a0_ inner join B bset1_ on a0_.id=bset1_.a_id 和(bset1_.DELETED=0 或 bset1_.DELETED 为空)
并且 entityManager.find(...) 将正常工作:)