3

我可以以某种方式使用spring Auditing来获取实体的列表更改字段及其旧值,新值吗?

我试图获取实体的更新字段列表及其日志的旧值和新值。我在更新之前使用 getDeclaredFields 比较旧实体和新实体,它可以工作。但仍然想知道是否有一些标准和更简单的解决方案。我正在使用 spring 和 hibernate 来管理我的实体。经过研究,我发现可以通过在更新事件上添加侦听器并使用事件中的 getDirtyProperties 来为我的目的使用休眠会话。但据我了解,它需要休眠事务管理器,我已经在使用 JpaTransactionManager 并且无法更改它。

然后我被告知这个春季审计功能 http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#jpa.auditing 问题是它是否可以提供类似 getDirtyProperties 的东西? 或者也许还有其他解决方法?因为不需要创建新表,如果我做对了,spring 审计需要在数据库中存储审计数据。

4

1 回答 1

3

Spring 的Auditable中实际上没有任何内容需要将其存储在数据库中,但它也不包括您正在寻找的详细信息级别,即哪些字段已更改。Hibernate Envers可以做到这一点,但我相信它只能将审计记录存储在数据库中。不过,您也许可以将其用作起点。

于 2012-12-28T02:38:10.723 回答