Let's accept ColumnExp's or Strings for field identifiers and handle SQLExpression field values too.
This commit is contained in:
@@ -711,8 +711,22 @@ public abstract class DepotRepository
|
|||||||
final String[] fields = new String[fieldsValues.length/2];
|
final String[] fields = new String[fieldsValues.length/2];
|
||||||
final SQLExpression[] values = new SQLExpression[fields.length];
|
final SQLExpression[] values = new SQLExpression[fields.length];
|
||||||
for (int ii = 0, idx = 0; ii < fields.length; ii++) {
|
for (int ii = 0, idx = 0; ii < fields.length; ii++) {
|
||||||
fields[ii] = ((ColumnExp)fieldsValues[idx++]).name;
|
if (fieldsValues[idx] instanceof ColumnExp) {
|
||||||
values[ii] = new ValueExp(fieldsValues[idx++]);
|
fields[ii] = ((ColumnExp) fieldsValues[idx]).name;
|
||||||
|
} else if (fieldsValues[idx] instanceof String) {
|
||||||
|
fields[ii] = (String) fieldsValues[idx];
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"Field identifier #" + (ii+1) + " is neither String nor ColumnExp");
|
||||||
|
}
|
||||||
|
idx ++;
|
||||||
|
|
||||||
|
if (fieldsValues[idx] instanceof SQLExpression) {
|
||||||
|
values[ii] = (SQLExpression) fieldsValues[idx];
|
||||||
|
} else {
|
||||||
|
values[ii] = new ValueExp(fieldsValues[idx]);
|
||||||
|
}
|
||||||
|
idx ++;
|
||||||
}
|
}
|
||||||
UpdateClause<T> update = new UpdateClause<T>(type, key, fields, values);
|
UpdateClause<T> update = new UpdateClause<T>(type, key, fields, values);
|
||||||
final SQLBuilder builder = _ctx.getSQLBuilder(DepotTypes.getDepotTypes(_ctx, update));
|
final SQLBuilder builder = _ctx.getSQLBuilder(DepotTypes.getDepotTypes(_ctx, update));
|
||||||
|
|||||||
Reference in New Issue
Block a user