From 4c1cdf0a91d5d4d3ed5501c6ac6f24ab0329b7d8 Mon Sep 17 00:00:00 2001 From: Timi Date: Sun, 4 Jan 2026 12:11:24 +0800 Subject: [PATCH] fix SQLProvider.updateSelective update empty --- .../java/com/imyeyu/spring/util/SQLProvider.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/imyeyu/spring/util/SQLProvider.java b/src/main/java/com/imyeyu/spring/util/SQLProvider.java index 7ed4ee3..b2d6061 100644 --- a/src/main/java/com/imyeyu/spring/util/SQLProvider.java +++ b/src/main/java/com/imyeyu/spring/util/SQLProvider.java @@ -278,7 +278,7 @@ public class SQLProvider { } String setClause = meta.fieldColumnList.stream() .filter(FieldColumn::isNotId) - .filter(fc -> fc.isNotEmpty(entity)) + .filter(fc -> fc.isNotNull(entity)) .map(fc -> "`%s` = #{%s}".formatted(fc.columnName, fc.fieldName)) .collect(Collectors.joining(", ")); return "UPDATE `%s` SET %s WHERE `%s` = #{%s}".formatted(meta.table, setClause, meta.idFieldColumn.columnName, meta.idFieldColumn.fieldName); @@ -551,6 +551,18 @@ public class SQLProvider { } } + public boolean isNull(Object entity) { + try { + return Ref.getFieldValue(entity, field, Object.class) == null; + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + + public boolean isNotNull(Object entity) { + return !isNull(entity); + } + public boolean isEmpty(Object entity) { try { return TimiJava.isEmpty(Ref.getFieldValue(entity, field, Object.class));