辰宇落彦 2018-07-10 09:11 采纳率: 100%
浏览 41783
已采纳

jpa自带的save,flush和saveandflush区别

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

  • 写回答

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。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献