Hibernate flush和update区别

这两个的区别好理解 update操作的是在自由态或脱管状态(因session的关闭而处于脱管状态)的对象//updateSQL 而flush是操作的在持久状态的对象。

默认情况下,一个持久状态的对象的改动(包含set容器)是不需要update的,只要你更改了对象的值,等待hibernate flush就自动更新或保存到数据库了。hibernate flush发生在以下几种情况中:

1, 调用某些查询的和手动flush(),session的关闭、SessionFactory关闭结合 get()一个对象,把对象的属性进行改变,把资源关闭。

2,transaction commit的时候(包含了flush)。