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

来源:互联网 发布:js history.go 1 编辑:程序博客网 时间:2024/06/06 20:03

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

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

//实体类@Entitypublic class Student extends JpaRepositoriesAutoConfiguration{    private Integer id;    private String name;    private Integer age;    //省略getter/setter方法和构造函数}
//Controller类@RestControllerpublic 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); 
//在这个方法中调用上面的接口@Transactionalpublic String updateOne(@RequestParam("name") String name, @RequestParam("id") Integer id) {        stuRepository.updateOne(name,id);        return "更新成功";    }

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

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

阅读全文
0 0