flush(): 使Session缓存中的对象状态与数据库表中的记录保持一致,为了保持一致,可能会发送sql语句 1.在 Transaction 的 commit() 方法中,会先调用 flush() 方法,再提交事务。2.flush() 方法可能
1.在 Transaction 的 commit() 方法中,会先调用 flush() 方法,再提交事务。 2.flush() 方法可能会发送sql语句,但是不会提交事务。 3.注意:在未提交事务或显式的调用 session.flush() 方法之前,也有可能会进行 flush() 操作。 1).执行HQL或QBC查询,会先进行 flush() 操作,以得到数据表的最新记录。 2).若记录的ID是有底层数据库以自增的方式生成的(native),则在调用save()方法后,就会立即发送insert语句。因为 save()方法后,必须保证该对象的ID是存在的。2.refresh()方法
1.refresh()方法会强制发送select语句,以使Session缓存中对象的状态与数据库表中对应记录保持一致3.clear()方法
1.clear()方法会将session中的缓存清理掉