浏览 15940 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-06-15
孙卫琴<<精通Hibernate java对象持久化技术详解>>p177 说,flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务;commit()方法会先调用flush()方法,然后提交事务.提交事务意味着对数据库所做的更新会永久保持下来 p148 所谓清理,是指Hibernate 按照持久化象的状态来同步更新数据库 既然flush()已经同步更新数据库了,那也就意味着永久保存下来了,不解 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-06-16
Flush()后只是将Hibernate缓存中的数据提交到数据库,如果这时数据库处在一个事物当中,则数据库将这些SQL语句缓存起来,当Hibernate进行commit时,会告诉数据库,你可以真正提交了,这时数据才会永久保存下来,也就是被持久化了.
|
|
返回顶楼 | |
发表时间:2006-06-16
flush() 其实是放到缓存当中
|
|
返回顶楼 | |
发表时间:2006-06-16
当执行到commit时,就从缓存---->数据库中
|
|
返回顶楼 | |
发表时间:2006-06-16
im9527 写道 Hibernate commit() 和flush() 的区别
孙卫琴<<精通Hibernate java对象持久化技术详解>>p177 说,flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务;commit()方法会先调用flush()方法,然后提交事务.提交事务意味着对数据库所做的更新会永久保持下来 p148 所谓清理,是指Hibernate 按照持久化象的状态来同步更新数据库 既然flush()已经同步更新数据库了,那也就意味着永久保存下来了,不解 commit针对事物的 flush针对缓存的 同步到数据库中后只要没有commit还是可以rollback的。 |
|
返回顶楼 | |