如何在特定时间存储实体状态

时间:2018-12-10 13:49:03

标签: java sql hibernate jpa

我有一个名为“ Choices”的表。 该表与另一个表有很多关系,让与表A,B,C等一对多地说。 用户希望在任何时候都可以“复制”这些选择并关联所有表,并且希望在UI中准确查看该值。 (例如在特定时间查看大量条目的快照)

这是我尝试过的:

1)将复制的标志添加到“选择”表

我不想在现有的Choices表中添加“已复制”标志。因为当前有很多查询实现,并且所有查询都根据此复制的标志进行更新。例如;我在表A中得到了choices.id = blabla的元素总数,但是现在应该像choices.id = blabla and isCopied=false

一样进行更新

2)复制选项和所有相关表

这也是巨大的成本,我需要Copied_Choices(与Choices字段不完全相同)和所有其他表Copied_A,Coped_B等。这解决了数字1的返工问题,但仍然不满足因为我要么为每个表创建实体,控制器等,要么使用继承,这可能会增加代码的复杂性。

3)尝试对Envers进行一些调整。仍然需要复制表,但希望休眠会处理实体。但这不符合我的要求,因为“复制”操作不会通过插入/更新/删除等操作触发。这只是一个自定义操作。

您对这种方法有何建议?

您对此有何建议?

0 个答案:

没有答案