栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JPA的更新操作——使用sava()方法完成更新操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JPA的更新操作——使用sava()方法完成更新操作

问题描述

修改更新数据库部分字段,用save()方法进行update操作,未修改字段默认为null。

Family表有id,name,remark,createTime等字段,只修改name和remark这两个字段


解决方法:

1.前端传来一个Family对象叫做resources
2.根据resources的id,拿到原始的family对象(修改前的Family对象);
3.使用自定义的copy()方法(使原来的family对象中的字段要修改的进行修改,未修改的保持不变)

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void update(Family resources) {
        Family family = familyRepository.findById(resources.getId()).orElseGet(Family::new);
        ValidationUtil.isNull(family.getId(),"Family","id",resources.getId());
        family.copy(resources);
        familyRepository.save(family);
    }
使用hutool中的 BeanUtil.copyProperties()方法来封装我们的copy()方法

第一个参数代表前端传过来的对象,第二个参数代表原对象

public void copy(Family source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000322.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号