#1996 - Fix for MySQLSyntaxErrorException when update in bulk using idIn().

This commit is contained in:
rob bygrave
2020-04-30 21:33:02 +12:00
parent ed0e9e7006
commit dbe473d5a1
3 changed files with 10 additions and 15 deletions
@@ -104,16 +104,18 @@ public class IdInExpression extends NonPrepareExpression {
@Override
public void addSql(SpiExpressionRequest request) {
DefaultExpressionRequest r = (DefaultExpressionRequest) request;
BeanDescriptor<?> descriptor = r.getBeanDescriptor();
BeanDescriptor<?> descriptor = request.getBeanDescriptor();
IdBinder idBinder = descriptor.getIdBinder();
if (idCollection.isEmpty()) {
request.append(SQL_FALSE); // append false for this stage
} else {
request.append(descriptor.getIdBinderInLHSSql());
String inClause = idBinder.getIdInValueExpr(false, idCollection.size());
request.append(inClause);
if (idBinder.isComplexId()) {
request.append(descriptor.getIdBinderInLHSSql());
request.append(idBinder.getIdInValueExpr(false, idCollection.size()));
} else {
request.append(idBinder.getBeanProperty().getName());
request.appendInExpression(false, idCollection);
}
}
}