验证战略工作格局的单位
-
25-09-2019 - |
题
当我使用工作模式(与JPA)的单元,我得到一个实体从存储库中,修改并保存在工作单位的隐含对数据库的修改。
现在我不知道如何与工作模式的单元执行验证。如果我申请(从用户输入)的变化后的域对象和验证,该对象的值将甚至如果验证失败而改变。什么是避免编写非法状态的对象到数据库的方法是什么?回滚工作单元?
一个OOP的目标是,对象观看了自己的状态,让他们永远不会接受非法值。对于这种做法,我不得不抛出异常,这是从上面的豆验证(春季验证)的做法相反。但是,也许它更简单,更好。
什么验证策略会使用(在领域驱动设计)?
解决方案
什么是避免编写非法状态的对象到数据库的方法是什么?回滚工作单元?
如果您使用Bean验证API,它会抛出一个异常和变化不会被持久化(如果启用,验证假设在PrePersist
,PreUpdate
和PreRemove
生命周期事件的最后阶段发生)。
使用JPA 2.0,只是把类路径上的Bean验证实现。
使用JPA 1.0,请参阅这个前面的回答一>
不隶属于 StackOverflow