super(adapter);
}
@Override
public String createSqlString(BatchQuery batch) {
UpdateBatchQuery updateBatch = (UpdateBatchQuery) batch;
String table = batch.getDbEntity().getFullyQualifiedName();
List<DbAttribute> qualifierAttributes = updateBatch.getQualifierAttributes();
List<DbAttribute> updatedDbAttributes = updateBatch.getUpdatedAttributes();
StringBuffer query = new StringBuffer("UPDATE ");
query.append(table).append(" SET ");
int len = updatedDbAttributes.size();
for (int i = 0; i < len; i++) {
if (i > 0) {
query.append(", ");
}
DbAttribute attribute = updatedDbAttributes.get(i);
query.append(attribute.getName()).append(" = ?");
}
query.append(" WHERE ");
Iterator<DbAttribute> i = qualifierAttributes.iterator();
while (i.hasNext()) {
DbAttribute attribute = i.next();
appendDbAttribute(query, attribute);
query.append(updateBatch.isNull(attribute) ? " IS NULL" : " = ?");
if (i.hasNext()) {
query.append(" AND ");
}
}