|
@@ -15,8 +15,6 @@
|
|
*/
|
|
*/
|
|
package com.baomidou.mybatisplus.core.handlers;
|
|
package com.baomidou.mybatisplus.core.handlers;
|
|
|
|
|
|
-import java.util.function.Supplier;
|
|
|
|
-
|
|
|
|
import org.apache.ibatis.reflection.MetaObject;
|
|
import org.apache.ibatis.reflection.MetaObject;
|
|
import org.apache.ibatis.reflection.SystemMetaObject;
|
|
import org.apache.ibatis.reflection.SystemMetaObject;
|
|
|
|
|
|
@@ -53,42 +51,20 @@ public interface MetaObjectHandler {
|
|
* <p>
|
|
* <p>
|
|
* 如果包含前缀 et 使用该方法,否则可以直接 metaObject.setValue(fieldName, fieldVal);
|
|
* 如果包含前缀 et 使用该方法,否则可以直接 metaObject.setValue(fieldName, fieldVal);
|
|
* </p>
|
|
* </p>
|
|
- * <p>
|
|
|
|
- * 以后会删除这个方法,请转用下面的方法
|
|
|
|
- * </p>
|
|
|
|
*
|
|
*
|
|
* @param fieldName java bean property name
|
|
* @param fieldName java bean property name
|
|
* @param fieldVal java bean property value
|
|
* @param fieldVal java bean property value
|
|
* @param metaObject meta object parameter
|
|
* @param metaObject meta object parameter
|
|
*/
|
|
*/
|
|
- @Deprecated
|
|
|
|
default MetaObjectHandler setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject) {
|
|
default MetaObjectHandler setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject) {
|
|
- return setFieldValByName(() -> fieldVal, metaObject, fieldName);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * <p>
|
|
|
|
- * Common method to set value for java bean.
|
|
|
|
- * </p>
|
|
|
|
- * <p>
|
|
|
|
- * 如果包含前缀 et 使用该方法,否则可以直接 metaObject.setValue(fieldName, fieldVal);
|
|
|
|
- * </p>
|
|
|
|
- *
|
|
|
|
- * @param fieldVal java bean property value
|
|
|
|
- * @param metaObject meta object parameter
|
|
|
|
- * @param fieldNames java bean property names
|
|
|
|
- */
|
|
|
|
- default MetaObjectHandler setFieldValByName(Supplier<Object> fieldVal, MetaObject metaObject, String... fieldNames) {
|
|
|
|
- for (String fieldName : fieldNames) {
|
|
|
|
- if (metaObject.hasSetter(fieldName) && metaObject.hasGetter(fieldName)) {
|
|
|
|
- metaObject.setValue(fieldName, fieldVal.get());
|
|
|
|
- } else if (metaObject.hasGetter(Constants.ENTITY)) {
|
|
|
|
- Object et = metaObject.getValue(Constants.ENTITY);
|
|
|
|
- if (et != null) {
|
|
|
|
- MetaObject etMeta = SystemMetaObject.forObject(et);
|
|
|
|
- if (etMeta.hasSetter(fieldName)) {
|
|
|
|
- etMeta.setValue(fieldName, fieldVal.get());
|
|
|
|
- }
|
|
|
|
|
|
+ if (metaObject.hasSetter(fieldName)) {
|
|
|
|
+ metaObject.setValue(fieldName, fieldVal);
|
|
|
|
+ } else if (metaObject.hasGetter(Constants.ENTITY)) {
|
|
|
|
+ Object et = metaObject.getValue(Constants.ENTITY);
|
|
|
|
+ if (et != null) {
|
|
|
|
+ MetaObject etMeta = SystemMetaObject.forObject(et);
|
|
|
|
+ if (etMeta.hasSetter(fieldName)) {
|
|
|
|
+ etMeta.setValue(fieldName, fieldVal);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|