我很惊讶地发现,Hibernate会在事务结束时自动保存脏对象,而无需显式调用类似于
dao.save(object)
我想到了这篇文章中描述的情况。
我的问题是:是否有一种方法可以禁用此行为?乍一看,这种自动保存似乎相当危险,因为您需要知道哪些对象连接到会话,哪些对象没有连接,而且似乎非常容易出错。您能告诉我这种自动保存方法的好处是什么吗?我几乎看不到任何好处。我希望总是显式地调用dao.save(object)来更新任何内容。
我听说过一种可能的解决方法,即在sessionFactory上使用entityInterceptor。这个自定义entityInterceptor将覆盖findDirty方法,以永远不查找任何脏数据,但在这种情况下,我认为dao.save也将无法工作。有任何想法吗?