美文网首页
关于SpringBoot使用JPA的更新操作(save方法和原生

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

作者: 树蜂 | 来源:发表于2019-02-22 20:22 被阅读0次

    关于SpringBoot使用JPA的更新操作(save方法和原生SQL方法)
    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方法实现数据更新

    //省略实体类

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

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

    相关文章

      网友评论

          本文标题:关于SpringBoot使用JPA的更新操作(save方法和原生

          本文链接:https://www.haomeiwen.com/subject/rwryyqtx.html