【发布时间】:2012-10-03 06:47:43
【问题描述】:
我很惊讶地发现 Hibernate 会在事务结束时自动保存脏对象,而无需显式调用类似的东西
dao.save(object)
我想到了this thread所描述的情况
我的问题是:有没有办法禁用这种行为?乍一看,这种自动保存似乎相当危险,因为您需要知道哪些对象已连接到会话,哪些未连接到会话,并且似乎很容易错误地保存某些内容。你能告诉我这种自动保存方法的好处是什么吗?我几乎看不到任何东西。 我想总是明确地调用 dao.save(object) 来更新任何东西。
我听说过一种可能的解决方法,即在 sessionFactory 上使用 entityInterceptor。这个自定义 entityInterceptor 将覆盖 findDirty 方法,永远不会找到任何脏东西,但在这种情况下,我想 dao.save 也不会工作。有什么想法吗?
【问题讨论】:
-
这确实是hibernate最烦人的事情之一。考虑改用 ebean :)