以下是表结构:
id | createdby | createddate | tablename | columnname | primaryid | oldavalue | newvalue | remarks
我们得到分隔文件,其中我们有一些值在4个表中更新。四个表各有10列。我们不知道要更新什么。因此,我们只需针对一个主ID更新整行。
现在的挑战是:
如何在Hibernate中获取表名,列名?
如何获取旧值;在更新期间?如何知道我们正在更新哪个字段具有旧值,我们现在正在插入新值? (我们还没有比较字段)
答案 0 :(得分:3)
您可以实现Hibernate的EmptyInterceptor。在EmptyInterceptor的方法中,您可以找到字段名称,先前值和当前值。
答案 1 :(得分:1)
我最喜欢的工具是Hibernate Envers。您只需将您的实体注释为@Audited,并且envers会处理拦截器。
答案 2 :(得分:0)
您还可以通过在执行操作之前和之后编写弹簧方面来使用Spring AOP,这将在审计表中插入数据