最近遇到更新不成功 老大提到用flush() 但flush与commit有什么区别呢
首先 flush是针对缓存的 commit是针对事务的
其次 flush会清理缓存并执行sql 但是并不会提交事务 而commit 会先调用flush然后再提交事务
最后得弄清楚的概念是flush是清理缓存 所谓清理是指按照持久化对象的状态来同步更新数据库 没有commit提交就是说还可以rollback的 但是若flush是在事务中则只是将sql缓存起来 ,只有commit之后对象才是真正的被持久化了。