关于SpringBoot使用JPA的更新操作(save方法和原生SQL方法)

自学SpringBoot遇到些问题,才有了这篇博客,里面可能有些错误,欢迎指教。

1、使用save方法进行数据更新

//实体类
@Entity
public class Student extends JpaRepositoriesAutoConfiguration{
    private Integer id;
    private String name;
    private Integer age;
    //省略getter/setter方法和构造函数
}
//Controller类
@RestController
public class HelloController {
    @Autowired
    private StuRepository stuRepository;
    public void updateOne(@RequestParam("name") String name, @RequestParam("id") Integer id) {
        Student student = new Student();
        student.setName(name);
        student.setId(id);
        stuRepository.save(student);//实现数据更新
    }

使用该save方法进行更新时会发现,更新全部字段时会正常实现,可是在只更新部分字段时,会发现没有更新的字段被置为null;

2、使用原生SQL方法实现数据更新

//省略实体类
//原生SQL实现更新方法接口
@Query(value = "update Studnet set name=?1 where id=?2 ", nativeQuery = true)  
@Modifying  
public void updateOne(String name,int id); 
//在这个方法中调用上面的接口
@Transactional
public String updateOne(@RequestParam("name") String name, @RequestParam("id") Integer id) {
        stuRepository.updateOne(name,id);
        return "更新成功";
    }

使用原生SQL方法来实现更新,就比较正常了,可以实现全部字段更新,同样可以实现部分字段更新。

这里是增删改查实例
http://download.csdn.net/download/sinat_33889619/10035078
该篇文章只是自己学习的疑问并找到的解决方法。
如有问题请提出,有更好的想法也请一起分享

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值