@Override
public UpdateResponse executeUpdate(Command query, List<SQLParameter> parameters) throws SQLException {
String sql = query.toString();
LogManager.logDetail(LogConstants.CTX_ODATA, "Teiid-Query:", sql);
final PreparedStatementImpl stmt = getConnection().prepareStatement(sql,
ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
ResultSet.HOLD_CURSORS_OVER_COMMIT,
Statement.RETURN_GENERATED_KEYS);
if (!parameters.isEmpty()) {
for (int i = 0; i < parameters.size(); i++) {
stmt.setObject(i + 1, parameters.get(i).getValue(),
parameters.get(i).getSqlType());
}
}
final int count = stmt.executeUpdate();
final Map<String, Object> keys = getGeneratedKeys(stmt.getGeneratedKeys());
stmt.close();
return new UpdateResponse() {
@Override
public Map<String, Object> getGeneratedKeys() {
return keys;
}
@Override
public int getUpdateCount() {
return count;
}
};
}