Hibernate Validator でメッセージを挿入するときにインスタンス変数にアクセスするにはどうすればよいですか?
Hibernate Validator では、検証メッセージをカスタマイズする必要があることがよくあります。場合によっては、メッセージを動的に生成するためにインスタンス変数にアクセスする必要があります。では、Hibernate Validator でインスタンス変数にアクセスするにはどうすればよいでしょうか?まず、検証アノテーションでプレースホルダーを使用してインスタンス変数を参照する必要があります。次に、メッセージ リソース ファイルで、「{}」を使用してインスタンス変数の値を取得できます。このようにして、インスタンス変数の値を柔軟に挿入して、パーソナライズされた検証メッセージを生成できます。この記事では、PHPエディターのYuzaiが、Hibernate Validatorでメッセージを挿入する際にインスタンス変数にアクセスする方法を詳しく紹介します。
質問内容
crudrepository::save
を使用してリポジトリにオブジェクトを挿入するときに、Hibernate ValidatorとSpringを使用してオブジェクトを検証しています。クラスが
補間メッセージが、id フィールドなどの person インスタンスのすべてのフィールドにアクセスできるようにし、「${id}」や「${this.id}」のようにアクセスできるようにしたいと考えています。ドキュメントにはすべての Bean プロパティにアクセスできることが記載されていますが、それはクラス レベルの制約でのみ機能すると思います。
クラスレベルの制約に頼らずにこれを行う方法はありますか?
回避策
制約バリデータは、フィールド自体の外部の情報にはアクセスできません。つまり、兄弟フィールドにアクセスする方法はありません。これは制約の範囲に関係します。このように見てください:
リーリー空ではない name
は、個人フィールド、または会社または他のクラスのフィールドにすることができます。 @notblank
が存在する場所と区別できません。
したがって、質問で示唆したように、メッセージを挿入するときに他のクラスフィールドにアクセスするには、制約はクラスレベルである必要があります...
大量のカスタム制約の作成を避けるために、@scriptassert
を検討することを検討してください。
また、constraintviolationException
には、リーフ Bean (getleafbean()
) またはルート Bean ( getrootbean ()
) を実行し、例外をスローした後に必要な情報を取得します。
以上がHibernate Validator でメッセージを挿入するときにインスタンス変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







