mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58: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 IGNORE_NULLS = "$$ignoreNulls";
|
||||||
|
|
||||||
public static final String METHOD_INSERT_BATCH = "insertBatch";
|
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;
|
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.querywrapper.*;
|
||||||
import com.mybatisflex.core.row.Row;
|
import com.mybatisflex.core.row.Row;
|
||||||
import com.mybatisflex.core.table.TableInfo;
|
import com.mybatisflex.core.table.TableInfo;
|
||||||
@ -414,7 +416,7 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
String[] primaryKeys = tableInfo.getPrimaryKeys();
|
String[] primaryKeys = tableInfo.getPrimaryKeys();
|
||||||
|
|
||||||
sql.append("UPDATE ").append(wrap(tableInfo.getTableName())).append(" SET ");
|
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 ");
|
sql.append(" WHERE ");
|
||||||
for (int i = 0; i < primaryKeys.length; i++) {
|
for (int i = 0; i < primaryKeys.length; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
@ -423,7 +425,7 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
sql.append(wrap(primaryKeys[i])).append(" = ?");
|
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();
|
return sql.toString();
|
||||||
}
|
}
|
||||||
@ -440,7 +442,7 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("UPDATE");
|
sql.append("UPDATE");
|
||||||
sql.append(wrap(tableInfo.getTableName()));
|
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 ");
|
sql.append(" WHERE ");
|
||||||
|
|
||||||
String[] primaryKeys = tableInfo.getPrimaryKeys();
|
String[] primaryKeys = tableInfo.getPrimaryKeys();
|
||||||
@ -492,7 +494,7 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
//ignore selectColumns
|
//ignore selectColumns
|
||||||
StringBuilder sqlBuilder = new StringBuilder("UPDATE ");
|
StringBuilder sqlBuilder = new StringBuilder("UPDATE ");
|
||||||
sqlBuilder.append(wrap(tableInfo.getTableName()));
|
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);
|
buildJoinSql(sqlBuilder, queryWrapper, allTables);
|
||||||
@ -547,12 +549,15 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
//逻辑删除条件,已删除的数据不能被修改
|
//逻辑删除条件,已删除的数据不能被修改
|
||||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
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)) {
|
if (StringUtil.isNotBlank(versionColumn)) {
|
||||||
Object versionValue = tableInfo.getColumnValue(entity, 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);
|
sql.append(" AND ").append(wrap(versionColumn)).append(" = ").append(versionValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -599,7 +604,7 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
//逻辑删除条件,已删除的数据不能被修改
|
//逻辑删除条件,已删除的数据不能被修改
|
||||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
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));
|
sql.append(buildWhereConditionSql(queryWrapper));
|
||||||
@ -623,7 +628,7 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
//逻辑删除的情况下,需要添加逻辑删除的条件
|
//逻辑删除的情况下,需要添加逻辑删除的条件
|
||||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
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();
|
return sql.toString();
|
||||||
@ -639,7 +644,8 @@ public class CommonsDialectImpl implements IDialect {
|
|||||||
|
|
||||||
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
String logicDeleteColumn = tableInfo.getLogicDeleteColumn();
|
||||||
if (StringUtil.isNotBlank(logicDeleteColumn)) {
|
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