【发布时间】:2016-12-09 09:41:36
【问题描述】:
我需要维护数据库中数据的修改历史记录。修改不会很常见,因此似乎可以存储整行而不是仅存储差异,这在空间方面会更有效。 Hibernate envers 似乎是一个不错的解决方案。
现在我注意到 Audit 表更像是一个影子表,它将在第一次插入时存储数据。是否可以防止 envers 在第一次更新之前存储审计信息。我只是想减少数据库的磁盘占用,因为我可能不是在非常高性能的服务器上运行。 我希望实际表包含最新数据,而审计表只包含历史数据而不是当前行。我没有在我的 persistence.xml 中使用任何特定配置。 Hibernate 4.1 似乎找到了带有注释的审计类。 我想我应该处理插入后的监听器,但不确定我应该如何处理它。
【问题讨论】:
-
你找到办法了吗?我正在尝试实现类似的目标,但我不想保存任何数据,我只想知道何时创建/修改/删除了实体。如果您能分享您的经验,不胜感激。
-
不,我没有……暂时我决定忍受这个限制。一些可能对您有帮助的链接:stackoverflow.com/questions/12800540/…
-
@Vikram 如果你找到答案,请回答这个问题......可能对来到这里寻找相同问题的其他人有所帮助。
-
首先我为延迟回复道歉。当然,现在我们自己编写了一个简单的审计框架,因为我们认为我们不需要完整的丰富功能集。但是如果将来envers支持忽略修订数据存储,我一定会在这里发布解决方案。截至目前,该功能尚未在 envers 中实现。
标签: hibernate hibernate-envers