账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Spring Data JPA中的save选择性更新
    68
    0

    在Spring Data JPA的使用中,我们常常使用save方法来代替更新。这样做,会更新所有字段,即使对象中空的字段也会更新,这样就会导致数据的丢失。虽然,JPA中,提供了自己写SQL的方法,但是对于更新来说,如果我只想更新对象中的某个字段,那我是不是要写好多个更新的接口?求大佬们指点。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Spring Data JPA中,save()方法用于更新一个对象。如果需要选择性更新,可以使用save()方法的SaveMode参数,这是一个枚举值,用于控制是否执行批量更新。

      以下是一个示例:

      java @Query("UPDATE User SET name = :name WHERE id = :id") public void updateUser(@Param("name") String name, @Param("id") Long id) { User user = new User(); user.setName(name); user.setId(id); this.entityManager.save(user); }

      在这个示例中,updateUser()方法会更新User对象,如果id为0,那么整个User对象会被更新。如果id不为0,那么只会更新id为0的User对象。

      SaveMode枚举值有:

      • BATCH: 执行批量更新。
      • UPDATE: 执行单个更新。
      • PARTIAL: 仅更新指定的属性,而不执行批量更新。

      你可以根据需要选择性更新。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部