\nSpring Java 中 Save 和 SaveAndFlush 的区别\n
Save 和 saveAndFlush 都可以用于保存实体。它们都属于 Spring data 库。save 可能会也可能不会立即将更改写入数据库。当我们调用 saveAndFlush 时,系统强制将模型状态与数据库同步。
序号 | 关键点 | Save | SaveAndFlush |
---|---|---|---|
1 | 仓库 | 属于 CrudRepository | 属于 JPARepository |
2 | 数据刷新策略 | 除非我们显式调用 flush 和 commit 方法,否则它不会直接将数据刷新到数据库。 | 它会直接将数据刷新到数据库。 |
3 | 批量保存 | CrudRepository 提供批量保存方法 | saveAndFlush 方法不支持批量操作 |
4 | 保存后数据的可见性 | 它不会直接将数据刷新到数据库,因此,除非我们在该事务中显式调用 commit(),否则更改在事务外部将不可见。 | 更改在事务外部也将可见。 |
5 | 用例 | 当我们不需要在同一事务的后面使用保存的更改时,我们使用此方法。 | 当我们需要在同一事务的后面使用保存的更改时,我们使用此方法。 |
广告