Hibernate Envers 是如何工作的?

How does Hibernate Envers work?

我在我的一个项目中使用 Hibernate envers。它工作得非常好并且可以完成这项工作。

我正在尝试了解envers的内部工作机制

  1. envers 在内部是如何工作的?

  2. 实际交易成功,审计table更新失败怎么办?是否会回滚整个事务?

  3. envers 是否在与处理请求的实际线程不同的线程中执行?或者可以吗?

Hibernate Envers 为 CDC (Change Data Capture).

提供了一个非常简单的解决方案
  1. 它使用 Hibernate Event system to intercept all entity state transitions 并审核它们。
  2. 数据库事务将回滚,实际更改和审核日志都将回滚。
  3. 没有。 Envers 是一种同步审计日志记录机制。对于异步审计日志,需要使用Debezium.

如果您想使用 Envers,请确保您使用的是 validity audit strategy,因为它比默认的性能更好。