mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-06 16:48:24 +08:00
为逻辑删除的默认值功能添加常量
This commit is contained in:
parent
d99b397699
commit
e38273bb9e
@ -38,4 +38,13 @@ public class FlexConsts {
|
||||
public static final String IGNORE_NULLS = "$$ignoreNulls";
|
||||
|
||||
public static final String METHOD_INSERT_BATCH = "insertBatch";
|
||||
|
||||
/**
|
||||
* 当 entity 使用逻辑删除时,0 为 entity 的正常状态
|
||||
*/
|
||||
public static final int DEL_STATUS_NORMAL = 0;
|
||||
/**
|
||||
* 当 entity 使用逻辑删除时,1 为 entity 的删除状态
|
||||
*/
|
||||
public static final int DEL_STATUS_DELETED = 1;
|
||||
}
|
||||
|
||||
@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.mybatisflex.core.dialect;
|
||||
|
||||
import com.mybatisflex.core.FlexConsts;
|
||||
import com.mybatisflex.core.exception.FlexExceptions;
|
||||
import com.mybatisflex.core.querywrapper.*;
|
||||
import com.mybatisflex.core.row.Row;
|
||||
import com.mybatisflex.core.table.TableInfo;
|
||||
@ -414,7 +416,7 @@ public class CommonsDialectImpl implements IDialect {
|
||||
String[] primaryKeys = tableInfo.getPrimaryKeys();
|
||||
|
||||
sql.append("UPDATE ").append(wrap(tableInfo.getTableName())).append(" SET ");
|
||||
sql.append(wrap(logicDeleteColumn)).append(" = 1");
|
||||
sql.append(wrap(logicDeleteColumn)).append(" = ").append(FlexConsts.DEL_STATUS_DELETED);
|
||||
sql.append(" WHERE ");
|
||||
for (int i = 0; i < primaryKeys.length; i++) {
|
||||
if (i > 0) {
|
||||
@ -423,7 +425,7 @@ public class CommonsDialectImpl implements IDialect {
|
||||
sql.append(wrap(primaryKeys[i])).append(" = ?");
|
||||
}
|
||||
|
||||
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = 0 ");
|
||||
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(FlexConsts.DEL_STATUS_NORMAL);
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
@ -440,7 +442,7 @@ public class CommonsDialectImpl implements IDialect {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("UPDATE");
|
||||
sql.append(wrap(tableInfo.getTableName()));
|
||||
sql.append("SET ").append(wrap(logicDeleteColumn)).append(" = 1");
|
||||
sql.append("SET ").append(wrap(logicDeleteColumn)).append(" = ").append(FlexConsts.DEL_STATUS_DELETED);
|
||||
sql.append(" WHERE ");
|
||||
|
||||
String[] primaryKeys = tableInfo.getPrimaryKeys();
|
||||
@ -492,7 +494,7 @@ public class CommonsDialectImpl implements IDialect {
|
||||
//ignore selectColumns
|
||||
StringBuilder sqlBuilder = new StringBuilder("UPDATE ");
|
||||
sqlBuilder.append(wrap(tableInfo.getTableName()));
|
||||
sqlBuilder.append(" SET ").append(wrap(logicDeleteColumn)).append(" = 1 ");
|
||||
sqlBuilder.append(" SET ").append(wrap(logicDeleteColumn)).append(" = ").append(FlexConsts.DEL_STATUS_DELETED);
|
||||
|
||||
|
||||
buildJoinSql(sqlBuilder, queryWrapper, allTables);
|
||||
@ -547,12 +549,15 @@ public class CommonsDialectImpl implements IDialect {
|
||||
//逻辑删除条件,已删除的数据不能被修改
|
||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
||||
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = 0 ");
|
||||
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(FlexConsts.DEL_STATUS_NORMAL);
|
||||
}
|
||||
|
||||
//乐观锁条件
|
||||
if (StringUtil.isNotBlank(versionColumn)) {
|
||||
Object versionValue = tableInfo.getColumnValue(entity, versionColumn);
|
||||
if (versionValue == null) {
|
||||
throw FlexExceptions.wrap("The version value of entity[%s] must not be null.", entity);
|
||||
}
|
||||
sql.append(" AND ").append(wrap(versionColumn)).append(" = ").append(versionValue);
|
||||
}
|
||||
|
||||
@ -599,7 +604,7 @@ public class CommonsDialectImpl implements IDialect {
|
||||
//逻辑删除条件,已删除的数据不能被修改
|
||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
||||
queryWrapper.and(new StringQueryCondition(wrap(logicDeleteColumn) + " = 0"));
|
||||
queryWrapper.and(new StringQueryCondition(wrap(logicDeleteColumn) + " = " + FlexConsts.DEL_STATUS_NORMAL));
|
||||
}
|
||||
|
||||
sql.append(buildWhereConditionSql(queryWrapper));
|
||||
@ -623,7 +628,7 @@ public class CommonsDialectImpl implements IDialect {
|
||||
//逻辑删除的情况下,需要添加逻辑删除的条件
|
||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
||||
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = 0 ");
|
||||
sql.append(" AND ").append(wrap(logicDeleteColumn)).append(" = ").append(FlexConsts.DEL_STATUS_NORMAL);
|
||||
}
|
||||
|
||||
return sql.toString();
|
||||
@ -639,7 +644,8 @@ public class CommonsDialectImpl implements IDialect {
|
||||
|
||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
||||
sql.append(wrap(logicDeleteColumn)).append(" = 0 AND (");
|
||||
sql.append(wrap(logicDeleteColumn)).append(" = ").append(FlexConsts.DEL_STATUS_NORMAL);
|
||||
sql.append(" AND (");
|
||||
}
|
||||
|
||||
//多主键的场景
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user