各位大神:
save、flush和saveandflush似乎都能在数据库中更新数据,具体有什么区别,各自在什么情况下用呢

jpa自带的save,flush和saveandflush区别
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 冥牙 2018-12-04 04:06关注
一般来说需要手动flush的情况不多,设置AUTO时,jpa会自己决定什么时候flush。比如在更新数据之后,再使用jpa查询语句时,数据库就会在查询之前先flush一下,从而保证查询数据的正确性.下面这个例子是需要使用flush的情况:
https://stackoverflow.com/questions/32108491/what-is-exact-purpose-of-flush-in-jpa引用链接里的例子,
1.Read a person Person p = em.find(Person.class, 234)
2.Update person p.setAge(31)
3.Read a building Building b = em.find(Building.class, 123
4.Read a building with JPQL query select b from Building b where b.id = 123执行步骤2后,数据库中的对应的age并没有立刻变成31,只有在flush之后才会自动变成31(当然也可以在加上save(p)去更新数据库,其实这一步不需要)
通常在4之前需要flush,跟新下数据库里的age。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报