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);
    }
相关推荐
羊锦磊26 分钟前
[ HTML 前端 ] 语法介绍和HBuilderX安装
java·开发语言·前端·html
W.A委员会2 小时前
SpringMVC
数据仓库·hive·hadoop·spring
羊锦磊4 小时前
[ Mybatis 多表关联查询 ] resultMap
java·开发语言·数据库·mysql·mybatis
ZeroToOneDev6 小时前
Java(泛型和JUnit)
java·开发语言·笔记
迪尔~8 小时前
Apache POI中通过WorkBook写入图片后出现导出PDF文件时在不同页重复写入该图片问题,如何在通过sheet获取绘图对象清除该图片
java·pdf·excel
现在,此刻8 小时前
leetcode 11. 盛最多水的容器 -java
java·算法·leetcode
DKPT9 小时前
Java设计模式之开闭原则介绍与说明
java·设计模式·开闭原则
hyy27952276849 小时前
企业级WEB应用服务器TOMCAT
java·前端·tomcat
布朗克1689 小时前
Spring Boot项目通过Feign调用三方接口的详细教程
java·spring boot·feign
Arva .9 小时前
Spring基于XML的自动装配
xml·java·spring