JPA 中 save和saveAndFlush 区别

来源

总结

  • save和saveAndFlush其实底层多了一个entityManager的flush操作。而这个flush操作会将执行的sql发送至数据库服务器。而save方法需等到事务提交的时候,才会进行发送sql执行sql语句。

  • 在使用的时候,如果save使用不当,当前事务不提交,这时候其他事务过来进行修改数据,可能会产生数据覆盖的情况。

  • 而在使用saveAndFlush的时候,当前事务不提交,其他事务过来的时候修改同一行记录,会产生锁等待现象,如果使用saveAndFlush建议将saveAndFlush操作放在最后执行,最大粒度的减少锁等待时间。

posted @ 2022-06-14 14:54  来一杯coffee  阅读(1675)  评论(0编辑  收藏  举报