如何在刷新之前获取 Hibernate Managed Entity 的数据库快照

How to get the database snapshot of a Hibernate Managed Entity just before it is flushed

我想知道Hibernate 是否可以在更新之前检索实体的原始字段值?

例如,拥有实体

class StkItem {
     private int Qty;
}

用户输入新的数量后,在保存新值之前能知道Qty的数据库值是多少吗?

您可以配置自定义 Hibernate Interceptor and overwrite the onFlushDirty 方法,其中包含批处理旧状态和新状态:

  • 对象实体,
  • 可序列化 ID,
  • 对象[]当前状态,
  • 对象[] previousState,
  • 字符串[] 属性名称,
  • 类型[]类型