소스 검색

修复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;