浏览代码

修复BUG自动填充会覆盖之前的值

Caratacus 8 年之前
父节点
当前提交
154041b95c
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      src/main/java/com/baomidou/mybatisplus/mapper/MetaObjectHandler.java

+ 4 - 2
src/main/java/com/baomidou/mybatisplus/mapper/MetaObjectHandler.java

@@ -17,6 +17,8 @@ package com.baomidou.mybatisplus.mapper;
 
 import org.apache.ibatis.reflection.MetaObject;
 
+import com.baomidou.mybatisplus.toolkit.StringUtils;
+
 /**
  * <p>
  * 元对象字段填充控制器抽象类,实现公共字段自动写入
@@ -62,9 +64,9 @@ public abstract class MetaObjectHandler {
      * @param metaObject meta object parameter
      */
     public MetaObjectHandler setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject) {
-        if (metaObject.hasGetter(fieldName)) {
+        if (metaObject.hasSetter(fieldName) && StringUtils.checkValNull(metaObject.getValue(fieldName))) {
             metaObject.setValue(fieldName, fieldVal);
-        } else if (metaObject.hasGetter(META_OBJ_PREFIX + "." + fieldName)) {
+        } else if (metaObject.hasGetter(META_OBJ_PREFIX + "." + fieldName) && StringUtils.checkValNull(metaObject.getValue(META_OBJ_PREFIX + "." + fieldName))) {
             metaObject.setValue(META_OBJ_PREFIX + "." + fieldName, fieldVal);
         }
         return this;