Spring Data Jpa的save方法更新未传值的字段被更新为空的处理方法

Spring Data Jpa的save()方法通过主键是否为空来判断insert或是update操作,但更新方法和以往使用的mybatis-plus存在一定的差异,特别记录处理方法。

java 复制代码
	@Resource
	private Dao dao;
	
    /**
     * 更新操作
     * @param data 前端传入存在更新的字段值的对象
     */
    public void update(ItemDo data) {
        //数据库查询当前id的数据
        ItemDo itemDo = dao.selectOne(data.getId());
        //创建一个新的对象
        ItemDo updateData = new ItemDo();
        //复制所有字段的值给新的对象
        BeanUtil.copyProperties(updateData, itemDo);
        //判断哪些字段需要更新并赋值,实现动态更新
        if(StrUtil.isNotEmpty(data.getDivide())){
            updateData.setDivide(data.getDivide());
        }
        if(StrUtil.isNotEmpty(data.getTitle())){
            updateData.setTitle(data.getTitle());
        }
        //更新操作
        dao.save(updateData);
    }
相关推荐
失业写写八股文8 分钟前
从快递柜到并发编程:深入理解CAS与ABA问题
java
jio本小子10 分钟前
apk反编译Apktool.jar
java·jar
爱的叹息22 分钟前
Java泛型程序设计使用方法
java·开发语言
爱的叹息23 分钟前
java 使用命令创建jar的常用参数整理
java·开发语言·jar
猿来入此小猿41 分钟前
基于SpringBoot+Vue3实现的宠物领养管理平台功能一
java·spring boot·毕业设计·宠物·宠物领养·宠物平台·免费学习
棉花糖老丫44 分钟前
如何使用Spring AI提示词模板PromptTemplate?
java·人工智能·spring·ai
爱编码的傅同学1 小时前
C++从入门到入土(八)——多态的原理
java·jvm·c++
T.O.P111 小时前
RabbitMQ常见问题总结
java·rabbitmq·java-rabbitmq
不想当程序汪的第N天1 小时前
【工具类】PDF文件转图片
java·pdf
旷野说1 小时前
Maven 集成 groovy 脚本插件:gmavenplus-plugin
java·maven