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);
    }
相关推荐
追随者永远是胜利者5 分钟前
(LeetCode-Hot100)5. 最长回文子串
java·算法·leetcode·职场和发展·go
小灵不想卷6 分钟前
LangChain4j 多模态
java·langchain4j
wuqingshun3141599 分钟前
String、StringBuffer、StringBuilder的应用场景
java·开发语言·jvm
日月云棠16 分钟前
JDK 17 特性详解
java
追随者永远是胜利者17 分钟前
(LeetCode-Hot100)19. 删除链表的倒数第 N 个结点
java·算法·leetcode·链表·go
树码小子21 分钟前
Mybatis(14)Mybatis-Plus入门 & 简单使用
java·mybatis-plus
人道领域23 分钟前
Maven配置加载:动态替换的艺术
java·数据库·后端
MX_935926 分钟前
@Import整合第三方框架原理
java·开发语言·后端·spring
坚持就完事了35 分钟前
Java实现数据结构中的链表
java·数据结构·链表
玩具猴_wjh42 分钟前
JWT优化方案
java·服务器·数据库