修复:通过方言动态添加 queryWrapper 条件,出现 No value specified for param 的错误, close #I7E7L8

This commit is contained in:
开源海哥 2023-06-17 12:17:34 +08:00
parent b7348561de
commit 95d5330937
2 changed files with 51 additions and 28 deletions

View File

@ -208,10 +208,10 @@ public class EntitySqlProvider {
CPI.setFromIfNecessary(queryWrapper, tableInfo.getSchema(), tableInfo.getTableName());
tableInfo.appendConditions(null, queryWrapper);
String sql = DialectFactory.getDialect().forDeleteEntityBatchByQuery(tableInfo, queryWrapper);
ProviderUtil.setSqlArgs(params, CPI.getValueArray(queryWrapper));
return DialectFactory.getDialect().forDeleteEntityBatchByQuery(tableInfo, queryWrapper);
return sql;
}
@ -269,12 +269,14 @@ public class EntitySqlProvider {
//处理逻辑删除 多租户等
tableInfo.appendConditions(entity, queryWrapper);
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forUpdateEntityByQuery(tableInfo, entity, ignoreNulls, queryWrapper);
Object[] values = tableInfo.buildUpdateSqlArgs(entity, ignoreNulls, true);
Object[] queryParams = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, ArrayUtil.concat(values, queryParams));
return DialectFactory.getDialect().forUpdateEntityByQuery(tableInfo, entity, ignoreNulls, queryWrapper);
return sql;
}
/**
@ -296,11 +298,14 @@ public class EntitySqlProvider {
//处理逻辑删除 多租户等
tableInfo.appendConditions(null, queryWrapper);
Object[] queryParams = CPI.getValueArray(queryWrapper);
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forUpdateNumberAddByQuery(tableInfo.getSchema()
, tableInfo.getTableName(), fieldName, value, queryWrapper);
Object[] queryParams = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, queryParams);
return DialectFactory.getDialect().forUpdateNumberAddByQuery(tableInfo.getSchema(), tableInfo.getTableName(), fieldName, value, queryWrapper);
return sql;
}
@ -372,10 +377,13 @@ public class EntitySqlProvider {
CPI.setFromIfNecessary(queryWrapper, tableInfo.getSchema(), tableInfo.getTableName());
}
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper);
Object[] values = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, values);
return DialectFactory.getDialect().forSelectByQuery(queryWrapper);
return sql;
}
/**
@ -399,10 +407,13 @@ public class EntitySqlProvider {
CPI.setFromIfNecessary(queryWrapper, tableInfo.getSchema(), tableInfo.getTableName());
}
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper);
Object[] values = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, values);
return DialectFactory.getDialect().forSelectByQuery(queryWrapper);
return sql;
}

View File

@ -154,10 +154,13 @@ public class RowSqlProvider {
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, schema, tableName);
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forDeleteByQuery(queryWrapper);
Object[] valueArray = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, valueArray);
return DialectFactory.getDialect().forDeleteByQuery(queryWrapper);
return sql;
}
/**
@ -191,12 +194,15 @@ public class RowSqlProvider {
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, schema, tableName);
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forUpdateByQuery(queryWrapper, data);
Object[] modifyValues = RowCPI.obtainModifyValues(data);
Object[] valueArray = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, ArrayUtil.concat(modifyValues, valueArray));
return DialectFactory.getDialect().forUpdateByQuery(queryWrapper, data);
return sql;
}
@ -269,12 +275,13 @@ public class RowSqlProvider {
String fieldName = ProviderUtil.getFieldName(params);
Number value = (Number) ProviderUtil.getValue(params);
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forUpdateNumberAddByQuery(schema
, tableName, fieldName, value, queryWrapper);
Object[] queryParams = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, queryParams);
return DialectFactory.getDialect().forUpdateNumberAddByQuery(schema, tableName, fieldName, value, queryWrapper);
return sql;
}
@ -310,11 +317,13 @@ public class RowSqlProvider {
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, schema, tableName);
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper);
Object[] valueArray = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, valueArray);
return DialectFactory.getDialect().forSelectByQuery(queryWrapper);
return sql;
}
/**
@ -331,10 +340,13 @@ public class RowSqlProvider {
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, schema, tableName);
//优先构建 sql再构建参数
String sql = DialectFactory.getDialect().forSelectByQuery(queryWrapper);
Object[] valueArray = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, valueArray);
return DialectFactory.getDialect().forSelectByQuery(queryWrapper);
return sql;
}