我需要创建一个模型,在该模型中,对实体(本质上是交易)的更改需要单独保存,并在实际应用之前经过(其他用户的)批准过程。
将其想象为在Git中创建一个分支(代表JPA / Hibernate中的事务)并请求将其合并以返回。这样做的一个副作用是,它也涵盖了审计-因为历史已经存在,但是请注意,这并不是问题的主要原因(可以通过Envers之类的方法解决,因为例如)。
大多数实体都可以参与其中,我想避免重复一切,以使“官方实体”与“临时实体”或类似实体分开。分期需要涵盖插入,更新和删除(可能使用墓碑)。
我正在尝试简化大多数开发工作,并将其中的大部分推向Hibernate / 3rd party库,如果没有的话,推向我必须创建的框架。理想情况下,所有常规事务提交实际上都将针对登台区域(可能会创建它)-唯一的例外是最终/应用操作,可以对其进行特殊处理。
对我来说,主要挑战之一是处理实体及其ID(主键)的正常使用将指向实体的唯一/主副本的事实-我不知道如何将其重定向到其他地方。
有人有什么建议吗?