From af068e04bc4982e733d6260b707a82e213b2df2f Mon Sep 17 00:00:00 2001 From: bruce Date: Sun, 24 May 2026 19:39:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(common):=20=E4=BF=9D=E7=95=99=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E5=AE=A1=E8=AE=A1=E5=AD=97=E6=AE=B5=E5=B7=B2=E6=9C=89?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/EntityAuditMetaObjectHandler.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/bruce/common/config/EntityAuditMetaObjectHandler.java b/src/main/java/com/bruce/common/config/EntityAuditMetaObjectHandler.java index b8237ee..b2dafc6 100644 --- a/src/main/java/com/bruce/common/config/EntityAuditMetaObjectHandler.java +++ b/src/main/java/com/bruce/common/config/EntityAuditMetaObjectHandler.java @@ -14,15 +14,28 @@ public class EntityAuditMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { Date now = new Date(); - strictInsertFill(metaObject, "createTime", Date.class, now); - strictInsertFill(metaObject, "updateTime", Date.class, now); - strictInsertFill(metaObject, "createBy", String.class, SYSTEM_USER); - strictInsertFill(metaObject, "updateBy", String.class, SYSTEM_USER); + fillIfNull(metaObject, "createTime", now); + fillIfNull(metaObject, "updateTime", now); + fillIfNull(metaObject, "createBy", SYSTEM_USER); + fillIfNull(metaObject, "updateBy", SYSTEM_USER); } @Override public void updateFill(MetaObject metaObject) { - strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); - strictUpdateFill(metaObject, "updateBy", String.class, SYSTEM_USER); + setIfWritable(metaObject, "updateTime", new Date()); + setIfWritable(metaObject, "updateBy", SYSTEM_USER); + } + + private void fillIfNull(MetaObject metaObject, String fieldName, Object fieldVal) { + if (!metaObject.hasSetter(fieldName) || metaObject.getValue(fieldName) != null) { + return; + } + metaObject.setValue(fieldName, fieldVal); + } + + private void setIfWritable(MetaObject metaObject, String fieldName, Object fieldVal) { + if (metaObject.hasSetter(fieldName)) { + metaObject.setValue(fieldName, fieldVal); + } } }