問題が発生しました。2 つのテーブル間の関係は 1 対多ですが、残念ながら、"MANY" が null である "ONE" だけが重要です。
タスクは次のとおり です。 Set が null である必要があるマウスを照会する必要があります。hibernate が「static Criterion isNull(Set s)」をサポートできる場合は問題ありません。
その他の方法でもOKです。
次の 2 つのクラスがあります。
クラス 1:
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*/
}
ありがとう!