Просмотр исходного кода

`db`模块新增更新空值方法。

mxd 3 лет назад
Родитель
Сommit
68f964819e

+ 15 - 12
magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java

@@ -10,9 +10,6 @@ import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
-/**
- * @author
- */
 public class NamedTable {
 	String tableName;
 
@@ -38,6 +35,8 @@ public class NamedTable {
 
 	boolean useLogic = false;
 
+	boolean withBlank = false;
+
 	Where where = new Where(this);
 
 	public NamedTable(String tableName, SQLModule sqlModule, Function<String, String> rowMapColumnMapper) {
@@ -54,6 +53,12 @@ public class NamedTable {
 		return this;
 	}
 
+	@Comment("更新空值")
+	public NamedTable withBlank(){
+		this.withBlank = true;
+		return this;
+	}
+
 	@Comment("设置主键名,update时使用")
 	public NamedTable primary(String primary) {
 		return primary(primary, null);
@@ -125,7 +130,10 @@ public class NamedTable {
 		return this;
 	}
 
-	private List<Map.Entry<String, Object>> filterNotBlanks() {
+	private Collection<Map.Entry<String, Object>> filterNotBlanks() {
+		if(this.withBlank){
+			return this.columns.entrySet();
+		}
 		return this.columns.entrySet().stream()
 				.filter(it -> StringUtils.isNotBlank(Objects.toString(it.getValue(), "")))
 				.collect(Collectors.toList());
@@ -144,7 +152,7 @@ public class NamedTable {
 		if (this.defaultPrimaryValue != null && StringUtils.isBlank(Objects.toString(this.columns.getOrDefault(this.primary, "")))) {
 			this.columns.put(this.primary, this.defaultPrimaryValue);
 		}
-		List<Map.Entry<String, Object>> entries = filterNotBlanks();
+		Collection<Map.Entry<String, Object>> entries = filterNotBlanks();
 		if (entries.isEmpty()) {
 			throw new MagicAPIException("参数不能为空");
 		}
@@ -281,13 +289,8 @@ public class NamedTable {
 		if (StringUtils.isNotBlank(this.primary)) {
 			primaryValue = this.columns.remove(this.primary);
 		}
-		List<Map.Entry<String, Object>> entries = null;
-		if (!isUpdateBlank) {
-			entries = filterNotBlanks();
-		} else {
-			entries = new ArrayList<>(this.columns.entrySet());
-		}
-
+		this.withBlank = isUpdateBlank;
+		List<Map.Entry<String, Object>> entries = new ArrayList<>(filterNotBlanks());
 		if (entries.isEmpty()) {
 			throw new MagicAPIException("要修改的列不能为空");
 		}