1

我遇到一个问题。两个表之间的关系是一对多的,但不幸的是,我们只关心“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*/

}

谢谢!

4

1 回答 1

0

这可以通过 isNotEmpty() 来解决。

Restrictions.isNotEmpty(propertyName);

我已经意识到了解决方案。

于 2012-12-20T11:04:00.053 回答