zoukankan      html  css  js  c++  java
  • spring data jpa 级联操作的时候注意事项

    Spring Data Jpa 记录

    如果在更新的时候,直接使用save方法更新就行,他的更新方法是根据你传没传id。

    eg:比如你要更新用户的手机号:平常的更新方法,尤其是mybatis使用的过程中,更常见的是这样的:

    @Override
    public User updateUserTelephone(User user, String newTel) {
        User tempUser=new User();
        tempUser.setTelephone(newTel);
        BeanUtils.copyProperties(tempUser,user,MyBeanUtils.getNullPropertyNames(tempUser));
        return userRepository.save(user);
    }
    

    这样做的后果是,如果你在实体类上面有级联的注解,会直接创建一个新的用户的,而不是更新一个用户,BeanUtils的作用是拷贝数据,但是id没有,所以就直接保存下来了。正确的操作方法是:

    @Transactional
    @Override
    public User updateUserTelephone(User user, String newTel) {
        user.setTelephone(newTel);
        return userRepository.save(user);
    }
    

    你必须加@Transactional注解。要不然保存不到库里。

    暂时就更新这么点吧

    博客网站 https://yamon.top 个人网站 https://yamon.top/resume GitHub网站 https://github.com/yamonc 欢迎前来访问
  • 相关阅读:
    求最大公约数
    1013
    实现页面的3D效果
    实现购物车的加减算法
    随机验证码
    深入理解jQuery中的ajax
    canvas粒子时钟
    node、express框架
    vue的增删改查
    实现点击a标签页面跳转后颜色高亮
  • 原文地址:https://www.cnblogs.com/chenyameng/p/12493406.html
Copyright © 2011-2022 走看看