作業パターンの単位の検証戦略
-
25-09-2019 - |
質問
私は(JPAで)作業パターンでのユニットを使用する場合、私はエンティティを取得しますリポジトリから、それを変更し、暗黙的にデータベースへの作業の単位の変更を保存します。
今、私が作業パターンの単位で検証を実行する方法を疑問に思います。私はその後、ドメインオブジェクトおよび検証するには(ユーザー入力からの)変更を適用する場合は、そのオブジェクトの値は、検証が失敗した場合でも変更されます。データベースへの不正な状態を持つオブジェクトを書き込まないようにする方法は何ですか?ロールバックの作業単位?
OOPの目標の一つは、オブジェクトが、彼らが不正な値を受け入れることはありませんのでことを、自分自身の状態を見守っていることです。このアプローチのために、私は例外をスローしなければならなかったし、それが上から豆の検証(と春の検証)アプローチの逆です。しかし、おそらくそれは単純で良いです。
どのような検証戦略あなたは(ドメイン駆動設計で)使うのでしょうか?
解決
あなたはビーン検証APIを使用している場合は、データベースへの不正な状態を持つオブジェクトを書き込まないようにする方法は何ですか?ロールバックの作業単位?
は、それは例外がスローされますと変更が(有効になっている場合、検証はPrePersist
、PreUpdate
、およびPreRemove
ライフサイクルイベントの最終段階で発生することになっている)持続されることはありません。
JPA 2.0では、単にクラスパス上のビーン検証の実装を置きます。
JPA 1.0では、<に、この前の回答を参照してください/ A>。
所属していません StackOverflow