クラスパスのルートにあるvalidation.xmlファイルを使用して、デプロイメント時に Hibernate バリデーターを再定義できます。1 つの展開で 1 つの検証スキームのみが必要な場合は、それで機能します。独自の xml ファイルを使用して各展開を構築できます。
一方、必要な検証がアプリケーションの状態に依存する場合は、状態に依存するバリデーターが必要です。検証グループは役に立ちません。異なるが関連するエンティティ オブジェクトを使用できますか。
abstract class BaseEntity {
private String name;
public String getName() { return name;}
}
public class Entity1 extends BaseEntity {
@Override
@NotNull
@Length(min=2, max=20)
public String getName() { return super.getName();)
}
public class Entity2 extends BaseEntity {
@Override
@Length(min=2, max=10)
public String getName() { return super.getName();)
}
関連する 2 つのクラスにリストがある場合にこれを行いました。1 つでは、リストに少なくとも 2 つの要素が必要でした。もう 1 つの場合、リストは空であるか、少なくとも 2 つの要素が必要です。