Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Hibernate 中的flush和commit

4 Décembre 2013 Publié dans #java, #hibernate, #spring, #sql

Spring中完成一个transaction之后,都会进行对数据的存储,但是有时候hibernate的bug导致必须手动重新存储一下,此时需要flush操作。flush作用是session中的缓存,把sql缓冲区的sql语句发送到数据库去。

flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务;commit()方法会先调用flush()方法,然后提交事务. 提交事务意味着对数据库所做的更新会永久保持下来
所谓清理,是指Hibernate 按照持久化象的状态来同步更新数据库

flush()后只是将Hibernate缓存中的数据提交到数据库,如果这时数据库处在一个事物当中,则数据库将这些SQL语句缓存起来,当Hibernate进行commit时,会告诉数据库,你可以真正提交了,这时数据才会永久保存下来,也就是被持久化了.

commit针对事物的
flush针对缓存的
同步到数据库中后只要没有commit还是可以rollback的

相关程序代码

Publicité
Hibernate 中的flush和commit
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article