我有一个应用程序,它允许不同的用户更新一些数据,然后将这些数据发布到网站上。该应用程序使用 JPA 作为持久层。我现在想在这个场景中添加一些工作流管理,这样当具有初级角色的用户更新数据时,它不会直接发布,而是等待高级用户出现并批准更新。当更新未获批准时,原始数据应保持可见。
理想情况下,高级用户应该能够拒绝更新,而初级用户将看到该更新被拒绝并相应地编辑更新。
问题是,创建这样一个场景的好模式是什么?
我难以理解的部分是如何在不复制我拥有的每个实体的情况下表示更改的数据。在批准之前对数据进行多次更改怎么办?
我考虑了命令模式,因为它允许某种类型的撤消。我想知道是否有人有过类似情况的经验并有什么建议可以提供?
我应该指出,我知道一些工具,例如JBPM,它是一个工作流引擎,但我希望避免将这些工具集成到现有架构中的复杂性。如果有人指出使用这样的工具最终会产生更高的生产力,我将不胜感激。
谢谢