如何知道是什么让hibernate持久化对象变脏了?

bou*_*tta 10 java debugging hibernate

我用hibernate映射的对象有奇怪的行为.为了知道对象行为奇怪的原因,我需要知道是什么让对象变脏.有人可以帮忙并给我一个暗示吗?

该对象是Java/Spring上下文中的Java类.所以我更喜欢针对Java平台的答案.

编辑:我想访问Hibernate脏状态以及它如何更改附加到会话的对象.我不知道一段代码会如何帮助.

至于实际问题:在由Spring TransactionManager管理的事务中,我对对象执行一些(读取)查询,而不对这些对象进行显式保存,它们由TransactionManager保存,因为Hibernate认为其中一些(并非全部)很脏 现在我需要知道为什么Hibernate认为那些对象很脏.

Bri*_*ing 7

我会使用一个拦截器.onFlushDirty方法获取当前和之前的状态,以便您可以比较它们.实现Interceptor接口并扩展EmptyInterceptor,覆盖onFlushDirty.然后使用configuration.setInterceptor添加该类的实例(Spring可能要求您以不同方式执行此操作).您还可以在会话中而不是在启动时添加拦截器.

这是关于拦截器的文档.