考虑以下场景,其中Jpa用于持久性。 学生可以通过网络表单与不同的课程相关联。 因此,此表单显示不同的实体(学生,课程)。
按保存按钮,业务逻辑修改实体的某些字段,但数据库操作失败。
不幸的是,内存中的内容反映了业务逻辑所做的更改,这可能会产生一些不一致问题。 在类似的场景中是否有一种有用的模式?
我认为可能的解决方案以及为什么我不喜欢它们:
否则我可以克隆实体,进行更改并在成功提交后将克隆与原始实体交换。
无论如何,按照完善的模式,我会更加舒适。
答案 0 :(得分:1)
Memento Pattern是一种旨在提供'回滚的设计模式。内存中对象状态的功能。你需要一个Caretaker课程,要求主题提供纪念品,然后尝试持久性。然后看守者将Memento带回主题,告诉它如果必要的话回滚到Memento描述的状态。