增强: Entity 数据在被插入时,会自动设置逻辑删除的默认值

This commit is contained in:
开源海哥 2023-03-04 17:41:11 +08:00
parent a4d018b86f
commit 19bf420627
2 changed files with 22 additions and 1 deletions

View File

@ -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];

View File

@ -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);
}
}
}