保存和保存之间的差异春季数据jpa中的冲洗
2022-08-31 07:29:22
我正在尝试通过测试一些CRUD操作来学习弹簧数据JPA。JpaRepository
我遇到了两种方法和.我不明白这两者之间的区别。在调用时,我的更改也保存到数据库中,因此.save
saveAndFlush
save
saveAndFlush
我正在尝试通过测试一些CRUD操作来学习弹簧数据JPA。JpaRepository
我遇到了两种方法和.我不明白这两者之间的区别。在调用时,我的更改也保存到数据库中,因此.save
saveAndFlush
save
saveAndFlush
在 上,更改将立即在此命令中刷新到 DB。使用 ,这不一定是正确的,并且可能只保留在内存中,直到 发出 或 命令。saveAndFlush
save
flush
commit
但请注意,即使您刷新事务中的更改并且不提交它们,在此事务中提交之前,外部事务仍然看不到这些更改。
在你的情况下,你可能使用某种事务机制,如果一切顺利,它会为你发出命令。commit
根据您正在使用的休眠刷新模式(这是默认设置),可能会也可能不会立即将更改写入数据库。调用时,您正在强制实施模型状态与数据库的同步。AUTO
save
saveAndFlush
如果您使用刷新模式 AUTO,并且您正在使用应用程序先保存,然后再次选择数据,则不会看到 和 之间的 bahvior 差异,因为选择首先触发刷新。请参阅文档。save()
saveAndFlush()