Ich habe ein Projekt, in dem das Datenmodell und die Geschäftsschicht in zwei verschiedenen Modulen befinden. Natürlich hat das Geschäftsmodul eine Abhängigkeit zum Modellmodul. Die Entity-Validierung wird durch Java-Validation-API-Annotationen implementiert.
Ich frage mich, wo ich die Validierung zwischen den Entitäten implementieren soll (Geschäftsvalidierung, bei der die Beziehungen zwischen verschiedenen Entitätstypen validiert werden). Aktuell sehe ich folgende Optionen:
- Erstellen von benutzerdefinierten javax.validation.ConstraintValidators und zugehörigen Annotationen. Das Problem ist, dass der Validator Zugriff auf die Geschäftsservices benötigen würde, um verwandte Entitäten abzurufen, aber das Modellmodul sollte keine Abhängigkeit vom Geschäftsmodul haben.
- Implementierung der Validierung zwischen den Entitäten in den Persist-/Merge-Methoden der Geschäftsservices (z. B. unter Verwendung von Interzeptoren). Das wäre möglich, aber die Validierung zwischen den Entitäten ist von der Entitätsvalidierung getrennt, und ich möchte nur eine Stelle für die Validierung haben.
Welche Option ist bevorzugt? Gibt es bessere Vorschläge?
Vielen Dank, Sebastian