我需要维护数据库中数据的修改历史。修改不会很常见,因此似乎可以存储整行而不是仅存储差异,这在空间方面会更有效。Hibernate envers 似乎是一个不错的解决方案。
现在我注意到 Audit 表更像是一个影子表,它将在第一次插入时存储数据。是否可以防止 envers 在第一次更新之前存储审计信息。我只是想减少数据库的磁盘占用,因为我可能不是在非常高性能的服务器上运行。我希望实际表包含最新数据,而审计表只包含历史数据而不是当前行。我没有在我的 persistence.xml 中使用任何特定配置。Hibernate 4.1 似乎找到了带有注释的审计类。我认为我应该处理插入后的侦听器,但不确定我应该如何处理它。