gpt4 book ai didi

java - 工作单元模式的验证策略

转载 作者:行者123 更新时间:2023-11-30 09:55:05 27 4
gpt4 key购买 nike

当我使用 unit of work pattern (使用 JPA),我从存储库中获取一个实体,对其进行修改并将工作单元的修改隐式保存到数据库中。

现在我想知道如何使用工作单元模式执行验证。如果我将更改(从用户输入)应用于域对象并在之后进行验证,即使验证失败,该对象的值也会更改。有什么方法可以避免将非法状态的对象写入数据库?回滚工作单元?

OOP 的目标之一是让对象监视自己的状态,这样它们就永远不会接受非法值。对于这种方法,我不得不抛出异常,它与上面的 bean 验证(和 spring 验证)方法相反。但也许它更简单更好。

您会使用什么验证策略(在领域驱动设计中)?

最佳答案

What is the way to avoid writing an object with illegal state to the database? Roll back the unit of work?

如果您使用 Bean Validation API,它会抛出异常并且更改不会被持久化(如果启用,验证应该发生在 PrePersist 的最后阶段, PreUpdatePreRemove 生命周期事件)。

使用 JPA 2.0,只需在类路径上放置一个 Bean Validation 实现。

使用 JPA 1.0,请参阅 this previous answer .

关于java - 工作单元模式的验证策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com