我在谷歌上搜索了很多关于 flush()、commit() 的内容,并且我已经阅读了休眠圣经(Java Persistance with Hibernate)。
我对这些方法如何工作的理解似乎仍然存在一些不一致之处。
这是一个有点令人费解的观察:
让我们假设我们使用手动刷新模式。我们开始一个新的会话,启动一个事务,加载和修改一些持久对象,然后刷新和关闭会话但是在这个过程中我们没有对事务执行提交方法。
据我了解(来自休眠圣经),在这种情况下,即使调用了 flush() ,修改也不会保存到数据库中。这是一个正确的观察吗?
这是另一个相关的问题,hibernate javadoc说:
刷新是将底层持久存储与内存中保存的持久状态同步的过程。
这究竟是什么意思?术语同步在这里有点模糊,这个描述没有解释(还有,矛盾!)上面提到的观察。
有人可以在这里准确澄清同步这个词的含义,因为我在网上和休眠圣经中都找不到这个问题的答案。