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);
    }
相关推荐
夏幻灵几秒前
从0开始学JAVA-2 String和char的区别
java·开发语言
Han.miracle6 分钟前
SpringBoot前后端交互实战案例:加法计算器与用户登录
java·开发语言
毕设源码-邱学长10 分钟前
【开题答辩全过程】以 基于SpringBoot的专业分流系统为例,包含答辩的问题和答案
java·spring boot·后端
java硕哥11 分钟前
Spring与SpringBoot的重要接口及核心概念
java·spring boot·spring
lynnlovemin16 分钟前
Java技术研发年度深度总结:从架构优化到工程实践的破局之路
java·开发语言·架构·年度总结
05大叔27 分钟前
Spring Day03
java·后端·spring
刘宇涵4930 分钟前
链表头结点
java
笨手笨脚の40 分钟前
链表与LinkedList
java·数据结构·链表·linkedlist
BD_Marathon40 分钟前
Claude Code概述
java·开发语言
刘宇涵4942 分钟前
Java pos
java