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);
    }
相关推荐
露天赏雪2 小时前
掘金小册样章
java·开发语言·人工智能·ai编程
zlwool2 小时前
图纸管理选型:从变更频率到齐套率
java·前端·python·erp·设备erp·非标机械
码场老菜鸟3 小时前
C++ 指针的深度理解与应用
java·c++·算法
霸道流氓气质3 小时前
Spring AI Function Calling实现原理与自定义函数
java·spring·microsoft
OPEN-F3 小时前
C++并发编程:条件变量与原子操作
java·开发语言·c++
gs801403 小时前
Spring AI × Nacos 3.2:打造可动态治理 Prompt 的电商售后智能 Agent
人工智能·spring·prompt
南城以南溫暖如初1473 小时前
社群电商实战指南:从零搭建高转化社区的技术架构
java·spring boot·mysql·系统架构·vue·mybatis
南城以南溫暖如初1473 小时前
会员返利商城系统开发实战:架构设计与实现指南
java·spring boot·mysql·vue·mybatis
Shaoshing3 小时前
Java SE Java EE 和 JavaME区别
java
lhldsg3 小时前
树洞倾诉的核心需求与产品定位误区
java·前端·小程序