session.flush() 在 Hibernate 中有什么用

2022-08-31 08:27:41

当我们更新记录时,我们可以与Hibernate一起使用。有什么需要?session.flush()flush()


答案 1

刷新会话会强制 Hibernate 将 的内存中状态与数据库同步(即,将更改写入数据库)。默认情况下,休眠将自动为您刷新更改:Session

  • 在某些查询执行之前
  • 提交事务时

允许显式刷新 会提供在某些情况下可能需要的更精细的控制(要分配 ID,要控制会话的大小,...)。Session


答案 2

正如上面答案中正确指出的那样,通过调用,我们强制休眠以在数据库上执行SQL命令。但要明白,改变还没有“提交”。因此,在执行刷新和提交之前,如果您直接访问数据库(例如从SQL提示符)并检查修改后的行,则不会看到更改。flush()

这与打开 2 个 SQL 命令会话相同。在提交之前,在 1 个会话中完成的更改对其他人不可见。


推荐