2.3. アプリケーションレベルの検証

Hibernate Validator は、アプリケーションコードのどの場所でも適用できます。
ClassValidator personValidator = new ClassValidator( Person.class );
ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) );

InvalidValue[] validationMessages = addressValidator.getInvalidValues(address);
最初の 2 行はクラスチェックのために Hibernate Validator を準備します。最初の行は Hibernate Validator に組み込まれたエラーメッセージに依存します (「エラーメッセージ」 を参照)。次の行はこれらのメッセージのリソースバンドルを使用します。これらの行は一度だけ実行し、検証機能インスタンスをキャッシュすることが推奨されます。
3 行目は実際に Address インスタンスを検証し、InvalidValue のアレイを返します。アプリケーションロジックはエラーに反応できるようになります。
また、Bean 全体の代わりに特定のプロパティをチェックすることもできます。これは、プロパティごとのユーザーの対話に役に立つことがあります。
ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) );

//only get city property invalid values
InvalidValue[] validationMessages = addressValidator.getInvalidValues(address, "city");

//only get potential city property invalid values
InvalidValue[] validationMessages = addressValidator.getPotentialInvalidValues("city", "Paris");