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);
    }
相关推荐
2401_841495646 小时前
【数据结构】基于Prim算法的最小生成树
java·数据结构·c++·python·算法·最小生成树·prim
木井巳7 小时前
[Java数据结构和算法] HashMap 和 HashSet
java·数据结构·1024程序员节
祈祷苍天赐我java之术8 小时前
解析常见的限流算法
java·数据结构·算法
摇滚侠8 小时前
IDEA 启动前端项目 IDEA 切换分支
java·ide·intellij-idea
元直数字电路验证8 小时前
Jakarta EE开发中,如何配置IntelliJ IDEA的远程调试?
java·eureka·intellij-idea
石头wang8 小时前
idea字体的问题(idea应用本身的字体问题)
java·ide·intellij-idea
孔明兴汉9 小时前
第一章-第三节-Java开发环境配置
java·开发语言
小王不爱笑1329 小时前
Java 核心知识点查漏补缺(一)
java·开发语言·python
空空kkk9 小时前
Java——类和对象
java·开发语言
JIngJaneIL10 小时前
篮球论坛|基于SprinBoot+vue的篮球论坛系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·篮球论坛系统