diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java index 2009fa5b..0382a104 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/provider/EntitySqlProvider.java @@ -58,9 +58,12 @@ public class EntitySqlProvider { TableInfo tableInfo = ProviderUtil.getTableInfo(context); - //设置乐观锁版本字段的初始化 + //设置乐观锁版本字段的初始化数据 tableInfo.initVersionValueIfNecessary(entity); + //设置逻辑删除字段的出初始化数据 + tableInfo.initLogicDeleteValueIfNecessary(entity); + Object[] values = tableInfo.obtainInsertValues(entity); ProviderUtil.setSqlArgs(params, values); @@ -86,6 +89,7 @@ public class EntitySqlProvider { TableInfo tableInfo = ProviderUtil.getTableInfo(context); for (Object entity : entities) { tableInfo.initVersionValueIfNecessary(entity); + tableInfo.initLogicDeleteValueIfNecessary(entity); } Object[] values = new Object[0]; diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java index 0d9d239d..7a4955ad 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java @@ -505,4 +505,21 @@ public class TableInfo { metaObject.setValue(columnPropertyMapping.get(versionColumn), 0); } } + + /** + * 初始化逻辑删除的默认值 + * + * @param entityObject + */ + public void initLogicDeleteValueIfNecessary(Object entityObject) { + if (StringUtil.isBlank(logicDeleteColumn)) { + return; + } + + MetaObject metaObject = EntityMetaObject.forObject(entityObject, reflectorFactory); + Object columnValue = getColumnValue(entityObject, logicDeleteColumn); + if (columnValue == null) { + metaObject.setValue(columnPropertyMapping.get(logicDeleteColumn), 0); + } + } }