データモデルとビジネスレイヤーが 2 つの異なるモジュールにあるプロジェクトがあります。もちろん、ビジネスモジュールはモデルモジュールに依存しています。エンティティー検証は、java-validation-api アノテーションによって実装されます。
cross-entity-validation (異なるエンティティ タイプ間の関係が検証されるビジネス検証) をどこに実装すればよいのか疑問に思っています。現在、次のオプションが表示されます。
- カスタム javax.validation.ConstraintValidators および関連する注釈を作成します。問題は、バリデータがビジネス サービスにアクセスする必要があることです。つまり、関連するエンティティを取得する必要がありますが、モデル モジュールはビジネス モジュールに依存するべきではありません。
- ビジネス サービスの永続化/マージ メソッドにクロス エンティティ検証を実装します (つまり、インターセプターを使用します)。それは可能ですが、クロスエンティティ検証はエンティティ検証から分離されているため、検証する場所は1つだけにしたいと思います。
どのオプションが望ましいですか? より良い提案はありますか?
ありがとう、セバスチャン