在每次更改时保留整个 JPA 实体
Preserving entire JPA entity on each change
我正在开发一个带有 Hibernate 后端的应用程序。我希望它能够做的一件事是让异步事件处理程序在 JPA 实体对象更新时触发。棘手的部分是,一旦更新了 JPA 实体,就不再有任何对原始对象的持久引用。
最终目标是存储原始 和 更新后的实体,以便异步组件可以完整地看到它们 。我可以想到几种可能的方法来解决这个问题,但它们都让我觉得很复杂。
- 将原始对象序列化,存入数据库某处,异步引用
- 序列化更新对象,将其作为JMS消息发送,异步更新数据库
- 创建一个单独的审计对象来跟踪更改并重播它们
有没有更简单的模式来处理这种事情?还是这只是我应该拥抱复杂性的东西?
Audit4j 将有助于异步保存您的对象。但它不会为 JPA 对象更改提供内置支持。但是可能有一种方法可以通过解决方法来实现。
在我看来,Hibernate Envers 可能很方便,在这种情况下,您有一个包含每个对象更改的日志 http://docs.jboss.org/envers/docs/
我正在开发一个带有 Hibernate 后端的应用程序。我希望它能够做的一件事是让异步事件处理程序在 JPA 实体对象更新时触发。棘手的部分是,一旦更新了 JPA 实体,就不再有任何对原始对象的持久引用。
最终目标是存储原始 和 更新后的实体,以便异步组件可以完整地看到它们 。我可以想到几种可能的方法来解决这个问题,但它们都让我觉得很复杂。
- 将原始对象序列化,存入数据库某处,异步引用
- 序列化更新对象,将其作为JMS消息发送,异步更新数据库
- 创建一个单独的审计对象来跟踪更改并重播它们
有没有更简单的模式来处理这种事情?还是这只是我应该拥抱复杂性的东西?
Audit4j 将有助于异步保存您的对象。但它不会为 JPA 对象更改提供内置支持。但是可能有一种方法可以通过解决方法来实现。
在我看来,Hibernate Envers 可能很方便,在这种情况下,您有一个包含每个对象更改的日志 http://docs.jboss.org/envers/docs/