当我使用工作单元模式(使用 JPA)时,我从存储库中获取一个实体,对其进行修改并将工作单元的 和 处的修改隐式保存到数据库中。
现在我想知道如何使用工作单元模式执行验证。如果我将更改(来自用户输入)应用于域对象并在此之后进行验证,那么即使验证失败,该对象的值也会更改。有什么方法可以避免将具有非法状态的对象写入数据库?回滚工作单元?
OOP 的目标之一是对象监视自己的状态,以便它们永远不会接受非法值。对于这种方法,我必须抛出异常,它与上面的 bean 验证(和 spring 验证)方法相反。但也许它更简单更好。
你会使用什么验证策略(在领域驱动设计中)?