我可以以某种方式使用spring Auditing来获取实体的列表更改字段及其旧值,新值吗?
我试图获取实体的更新字段列表及其日志的旧值和新值。我使用getDeclaredFields在更新之前比较旧实体和新实体,并且它可以工作。但仍然想知道是否有一些标准和简单的解决方法。 我使用spring和hibernate来管理我的实体。 在研究之后,我发现可以使用hibernate会话来实现我的目的,通过添加更新事件的监听器和使用事件中的getDirtyProperties。但据我所知它需要hibernate事务管理器,我已经在使用JpaTransactionManager并且无法更改它。
然后我被告知这个春季审计功能 http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#jpa.auditing 问题是它是否可以提供类似getDirtyProperties的东西?或许还有其他解决方法?因为创建新表是不受欢迎的,如果我做对了,Spring审计需要数据库中的存储审计数据。
答案 0 :(得分:2)
Spring的Auditable实际上并没有要求将其存储在数据库中,但它也没有包含您正在寻找的详细程度至于哪些字段改变了。 Hibernate Envers这样做,但我相信它只能将审计记录存储在数据库中。不过,您或许可以将它作为起点。