1

問題が発生しました。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*/

}

ありがとう!

4

1 に答える 1

0

これは isNotEmpty() で解決できます。

Restrictions.isNotEmpty(propertyName);

私は解決策を実現しました。

于 2012-12-20T11:04:00.053 に答える