作業単位パターン(JPAを使用) を使用すると、リポジトリからエンティティを取得して変更し、作業単位での変更を暗黙的にデータベースに保存します。
ここで、作業単位パターンで検証を実行する方法を知りたいです。ドメイン オブジェクトに (ユーザー入力から) 変更を適用し、その後検証すると、検証が失敗した場合でも、そのオブジェクトの値が変更されます。不正な状態のオブジェクトをデータベースに書き込まないようにする方法は何ですか? 作業単位をロールバックしますか?
OOP の目標の 1 つは、オブジェクトが自身の状態を監視して、不正な値を受け入れないようにすることです。このアプローチでは、例外をスローする必要がありました。これは、上記の Bean 検証 (およびスプリング検証) アプローチとは逆です。しかし、おそらくそれはよりシンプルで優れています。
(ドメイン駆動設計で) どの検証戦略を使用しますか?