如何访问以前的实体状态?

时间:2011-12-16 03:32:23

标签: java jpa entity

我正在尝试检测实体中的更改,以便检测对实体所做的更改,以便记录为任何用户所做的更改。

到目前为止,我已设法使用:

@EntityListeners(AuditListener.class)
@Entity
public class Entity1{...}

public class AuditListener {
@PostPersist
@PostUpdate
public void setUserInformation(Object entity) {...}
}

现在,我希望有一种方法来读取实体的 Previous State ,这样我就可以将它与当前值进行比较,并将字段,新值写入Audit Table以及执行修改的用户。

我知道我可以使用 @PostLoad 并在内存中保存以前的状态,但我认为必须有更通用的方法来完成相同的操作(硬编码较少)。

提前致谢。

1 个答案:

答案 0 :(得分:0)

Roolback没有将实体返回到其预先更新/预先持久化的状态,它会恢复对数据库的任何更改。我认为持久化上下文中没有这样的对象。我认为你应该使用方面。