2016-05-01 12 views
0

Ich nehme an einem Projekt teil, das Hibernate als ORM verwendet. Die Validierung der Daten erfolgt jedoch mit Annotationen auf Anwendungsebene. Meine Frage ist also - ist es möglich und in Ordnung, dass ich die bereits verwendeten Annotationen zur Validierung verwende, anstatt die Verwendung der Standard-Hibernate-Validator-Annotationen zu den bereits vorhandenen hinzuzufügen?Hibernate-Validator - Benutzerdefinierte Annotationen statt Standard verwenden?

Antwort

0

Kein Grund, warum Sie sich nicht einfach auf Validierungen auf Anwendungsebene verlassen können, aber ... die Annotationen sind tatsächlich unterschiedlicher Art und daher können beide notwendig oder ratsam sein.

Ich sehe Hibernate-Validierungs-Annotationen nur als Persistenz-Layer an, um sicherzustellen, dass zumindest alles, was in die Datenbank eingeht, einige Mindestanforderungen erfüllt. Sie stimmen (und sollten wahrscheinlich) mit der Definition der Datenbank überein (zumindest wenn Sie mit RDBMs arbeiten), lassen JPA/Hibernate jedoch einige Überprüfungen durchführen, bevor Sie den Netzwerk/Server-Treffer beim Senden von Anforderungen an den Datenbankserver vornehmen.

Anwendungsvalidierungsanmerkungen sind (sollten?) Spezifisch für die Geschäftsregeln, in der Regel komplexer als das, was die Datenbank selbst möglicherweise benötigt oder weiß.

Ein Problem könnte die Konsistenz zwischen Anwendungen sein, die die gleiche Persistenzschicht verwenden. Wenn Sie sich nur auf die Anwendungsannotationen verlassen und diese nicht validieren - insbesondere in Bezug auf NULL-Werte, Leerheit, rechtliche Werte usw. - können die von einer Anwendung erstellten/aktualisierten Daten im anderen Fehler verursachen. Wenn die grundlegenden Regeln nur in der Persistenzschicht sind, dann sind Sie (hoffentlich) mit den Grundlagen vertraut.

Natürlich können die Persistenzvalidierungs-Annotationen viel zur Implementierung/Bestätigung der Geschäftslogik beitragen, also kommt es wirklich darauf an, was Sie wo validieren wollen.

Verwandte Themen