2
當我使用unit of work pattern(與JPA)時,我從存儲庫中獲取一個實體,對其進行修改並將修改隱含地保存到數據庫中。工作單元模式的驗證策略
現在我想知道如何使用工作單元模式進行驗證。如果我將更改(從用戶輸入)應用到域對象並在其後進行驗證,則即使驗證失敗,該對象的值也會更改。避免用數據庫寫非法狀態的對象的方法是什麼?回滾工作單元?
面向對象的目標之一是,對象監視自己的狀態,以便他們永遠不會接受非法值。對於這種方法,我不得不拋出異常,這與上面的bean驗證(和spring驗證)方法相反。但也許它更簡單,更好。
你會使用什麼驗證策略(在域驅動設計中)?
要添加到答案,我很確定jpa(或hibernate)有一些非常具體的警告,反對在setter中使用數據驗證。 「在返回之前我們如何初始化對象是我們自己的事情,並且可以不止一次地調用setter」。 – 2010-06-08 20:01:50