From 3e5ae811bf81f567967cd25526a423bbd91cffc9 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 26 八月 2021 09:24:20 +0800 Subject: [PATCH] !82 saveAll支持有id更新,无id插入 Merge pull request !82 from 抓蛙师/dev --- ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java | 27 ++++++++++++++++++++++++++- 1 files changed, 26 insertions(+), 1 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java index 90a1bd4..99441b5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.common.core.mybatisplus.core; import cn.hutool.core.bean.copier.CopyOptions; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.ClassUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,6 +13,9 @@ import org.springframework.core.ResolvableType; import java.io.Serializable; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -118,7 +123,27 @@ */ @Override public boolean saveAll(Collection<T> entityList) { - return baseMapper.insertAll(entityList) == entityList.size(); + ArrayList<T> list = new ArrayList<>(); + for (T t : entityList) { + try { + //鑾峰彇灞炴�ф敞瑙g殑value鍊� + Field f = t.getClass().getDeclaredField("id"); + f.setAccessible( true );//璁剧疆鍙互鑼冨洿private + Object o = f.get(t);//鑾峰彇鍑篿d鐨勫�� + System.out.println(o); + if (o == null) { + //濡傛灉id涓簄ull,鎻掑叆 + list.add(t); + } else { + //鍚﹀垯鏇存柊 + baseMapper.updateById(t); + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + return baseMapper.insertAll(list) == list.size(); } /** -- Gitblit v1.9.3