From 13fc7cf95dcad3c1bd5141c07c2cfbe5d40ef155 Mon Sep 17 00:00:00 2001 From: jerry_zheng Date: Mon, 7 Aug 2023 23:04:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20UpdateChain=20&=20UpdateWrapper=20set?= =?UTF-8?q?=E5=92=8CsetRaw=E5=A2=9E=E5=8A=A0=20condition=20=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=96=B9=E6=B3=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatisflex/core/update/UpdateChain.java | 27 ++++++++++++ .../core/update/UpdateWrapper.java | 42 +++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateChain.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateChain.java index 8e756aae..f8192e4d 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateChain.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/update/UpdateChain.java @@ -82,35 +82,62 @@ public class UpdateChain extends QueryWrapperAdapter> { return new UpdateChain<>(baseMapper); } + public UpdateChain set(String property, Object value, boolean condition) { + entityWrapper.set(property, value, condition); + return this; + } public UpdateChain set(String property, Object value) { entityWrapper.set(property, value); return this; } + public UpdateChain set(LambdaGetter getter, Object value, boolean condition) { + entityWrapper.set(getter, value, condition); + return this; + } public UpdateChain set(LambdaGetter getter, Object value) { entityWrapper.set(getter, value); return this; } + public UpdateChain set(QueryColumn queryColumn, Object value, boolean condition) { + entityWrapper.set(queryColumn, value, condition); + return this; + } + public UpdateChain set(QueryColumn queryColumn, Object value) { entityWrapper.set(queryColumn, value); return this; } + public UpdateChain setRaw(String property, Object value, boolean condition) { + entityWrapper.setRaw(property, value, condition); + return this; + } + public UpdateChain setRaw(String property, Object value) { entityWrapper.setRaw(property, value); return this; } + public UpdateChain setRaw(LambdaGetter getter, Object value, boolean condition) { + entityWrapper.setRaw(getter, value, condition); + return this; + } public UpdateChain setRaw(LambdaGetter getter, Object value) { entityWrapper.setRaw(getter, value); return this; } + public UpdateChain setRaw(QueryColumn queryColumn, Object value, boolean condition) { + entityWrapper.setRaw(queryColumn, value, condition); + return this; + } + public UpdateChain setRaw(QueryColumn queryColumn, Object value) { entityWrapper.set(queryColumn, value); return this; 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 be600f65..5ce9d749 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 @@ -36,6 +36,12 @@ public interface UpdateWrapper extends Serializable { return handler.getUpdates(); } + default UpdateWrapper set(String property, Object value, boolean condition) { + if (condition) { + return set(property, value); + } + return this; + } default UpdateWrapper set(String property, Object value) { if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { @@ -46,6 +52,12 @@ public interface UpdateWrapper extends Serializable { return this; } + default UpdateWrapper set(LambdaGetter getter, Object value, boolean condition) { + if (condition) { + return set(getter, value); + } + return this; + } default UpdateWrapper set(LambdaGetter getter, Object value) { if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { @@ -57,6 +69,12 @@ public interface UpdateWrapper extends Serializable { return this; } + default UpdateWrapper set(QueryColumn queryColumn, Object value, boolean condition) { + if (condition) { + return set(queryColumn, value); + } + return this; + } default UpdateWrapper set(QueryColumn queryColumn, Object value) { if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { @@ -67,17 +85,41 @@ public interface UpdateWrapper extends Serializable { return this; } + + default UpdateWrapper setRaw(String property, Object value, boolean condition) { + if (condition) { + return setRaw(property, 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;