\nSpring Java 中 Save 和 SaveAndFlush 的区别\n


Save 和 saveAndFlush 都可以用于保存实体。它们都属于 Spring data 库。save 可能会也可能不会立即将更改写入数据库。当我们调用 saveAndFlush 时,系统强制将模型状态与数据库同步。

序号关键点SaveSaveAndFlush
1
仓库
属于 CrudRepository
属于 JPARepository
2
数据刷新策略
除非我们显式调用 flush 和 commit 方法,否则它不会直接将数据刷新到数据库。
它会直接将数据刷新到数据库。
3
批量保存
CrudRepository 提供批量保存方法
saveAndFlush 方法不支持批量操作
 4
保存后数据的可见性
它不会直接将数据刷新到数据库,因此,除非我们在该事务中显式调用 commit(),否则更改在事务外部将不可见。
更改在事务外部也将可见。
5
用例
当我们不需要在同一事务的后面使用保存的更改时,我们使用此方法。
当我们需要在同一事务的后面使用保存的更改时,我们使用此方法。

更新于: 2019年11月18日

5000+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告