From 4e0fad7e1727ba2a938376186314b30b0166070a Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Wed, 16 Aug 2023 17:20:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=AE=BE=E7=BD=AE=E9=87=8D=E8=BD=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/update/UpdateWrapper.java | 110 +++++++----------- 1 file changed, 43 insertions(+), 67 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateWrapper.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateWrapper.java index 5ce9d749..3a0acec0 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateWrapper.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateWrapper.java @@ -29,103 +29,79 @@ import java.util.Map; /** * @author michael */ -public interface UpdateWrapper extends Serializable { +public interface UpdateWrapper extends PropertySetter, Serializable { default Map getUpdates() { ModifyAttrsRecordHandler handler = (ModifyAttrsRecordHandler) ((ProxyObject) this).getHandler(); return handler.getUpdates(); } - default UpdateWrapper set(String property, Object value, boolean condition) { - if (condition) { - return set(property, value); + @Override + default UpdateWrapper set(String property, Object value, boolean isEffective) { + if (isEffective) { + if (value instanceof QueryWrapper + || value instanceof QueryColumn + || value instanceof QueryCondition) { + getUpdates().put(property, new RawValue(value)); + } else { + getUpdates().put(property, value); + } } return this; } - default UpdateWrapper set(String property, Object value) { - if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { - setRaw(property, value); - } else { - getUpdates().put(property, value); + @Override + default UpdateWrapper set(QueryColumn property, Object value, boolean isEffective) { + if (isEffective) { + if (value instanceof QueryWrapper + || value instanceof QueryColumn + || value instanceof QueryCondition) { + getUpdates().put(property.getName(), new RawValue(value)); + } else { + getUpdates().put(property.getName(), value); + } } return this; } - default UpdateWrapper set(LambdaGetter getter, Object value, boolean condition) { - if (condition) { - return set(getter, value); + @Override + default UpdateWrapper set(LambdaGetter property, Object value, boolean isEffective) { + if (isEffective) { + if (value instanceof QueryWrapper + || value instanceof QueryColumn + || value instanceof QueryCondition) { + getUpdates().put(LambdaUtil.getFieldName(property), new RawValue(value)); + } else { + getUpdates().put(LambdaUtil.getFieldName(property), value); + } } return this; } - default UpdateWrapper set(LambdaGetter getter, Object value) { - if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { - setRaw(getter, value); - } else { - getUpdates().put(LambdaUtil.getFieldName(getter), value); - } - - return this; - } - - default UpdateWrapper set(QueryColumn queryColumn, Object value, boolean condition) { - if (condition) { - return set(queryColumn, value); + @Override + default UpdateWrapper setRaw(String property, Object value, boolean isEffective) { + if (isEffective) { + getUpdates().put(property, new RawValue(value)); } return this; } - default UpdateWrapper set(QueryColumn queryColumn, Object value) { - if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { - setRaw(queryColumn, value); - } else { - getUpdates().put(queryColumn.getName(), value); + @Override + default UpdateWrapper setRaw(QueryColumn property, Object value, boolean isEffective) { + if (isEffective) { + getUpdates().put(property.getName(), new RawValue(value)); } return this; } - - default UpdateWrapper setRaw(String property, Object value, boolean condition) { - if (condition) { - return setRaw(property, value); + @Override + default UpdateWrapper setRaw(LambdaGetter property, Object value, boolean isEffective) { + if (isEffective) { + getUpdates().put(LambdaUtil.getFieldName(property), new RawValue(value)); } return this; } - - default UpdateWrapper setRaw(String property, Object value) { - getUpdates().put(property, new RawValue(value)); - return this; - } - - default UpdateWrapper setRaw(LambdaGetter getter, Object value, boolean condition) { - if (condition) { - return setRaw(getter, value); - } - return this; - } - - - default UpdateWrapper setRaw(LambdaGetter getter, Object value) { - getUpdates().put(LambdaUtil.getFieldName(getter), new RawValue(value)); - return this; - } - - - default UpdateWrapper setRaw(QueryColumn queryColumn, Object value, boolean condition) { - if (condition) { - return setRaw(queryColumn, value); - } - return this; - } - - default UpdateWrapper setRaw(QueryColumn queryColumn, Object value) { - getUpdates().put(queryColumn.getName(), new RawValue(value)); - return this; - } - - static UpdateWrapper of(Object entity) { if (entity instanceof UpdateWrapper) { return (UpdateWrapper) entity;