私は自分のアプリケーションのコンテキストで次で有効に休止状態バリデータとの組み合わせで、スプリングベースの検証を使用していますバネを注入したDAOを使用して特定のオブジェクトの有効性制約をチェックします。この結果、java.lang.StackOverflowErrorが発生します。これは、オブジェクトがバリデーター内からデータベースからロードされ、無限ループを引き起こすたびに呼び出されるように見えるためです。これを回避するために、私は次のコードでバリデータ内からコミットするように私のエンティティマネージャでフラッシュモードを設定しようとしている:データベースアクセスは
entityManager.setFlushMode(FlushModeType.COMMIT);
これは、休止状態からの「コレクションではないプロセスフラッシュによって()」例外が発生します。
カスタムバリデーターからデータベースにアクセスする際のベストプラクティスの例は、これらの問題の両方を回避することができますか?
同様の質問:http://stackoverflow.com/questions/8375704/make-custom-hibernate-validation-annotation-for- email-existence IMHP春の方法は '@ Autowired'サービスやDAOクラスをバリデーターにして、それを通常通り使用することです。 –