我遇到一个问题。两个表之间的关系是一对多的,但不幸的是,我们只关心“MANY”为空的“ONE”。
任务是: 现在我需要查询 Set 应该为 null 的老鼠。如果hibernate可以支持“static Criterion isNull(Set s)”,那就没问题了。
其他方法也可以。
有两个类:
第一类:
public class Mouse {
@OneToMany(mappedBy="mouse")
@Cascade(org.hibernate.annotations.CascadeType.LOCK)
@Where(clause="incage = 0")
private Set<Residency> cageHistory = new HashSet<Residency>();
@OneToMany(mappedBy="mouse")
@Cascade(org.hibernate.annotations.CascadeType.LOCK)
@Where(clause="incage = 1")
private Set<Residency> currentResidencies = new HashSet<Residency>();
...
...
}
第 2 类:
@Entity
@Table(name="smcagemouse")
public class Residency extends TimestampedEntity implements Serializable {
@Column(nullable=false)
/*0 -- not active*/
/*1 -- active*/
}
谢谢!