logger.debug("SQL for Save: " + sql);
int updateCount = 0;
if (isNewRow && persistentObject.isUsingGeneratedKeysStrategy()) {
KeyHolder keyHolder = new GeneratedKeyHolder();
final String prepSql = sql.toString();
updateCount = getJdbcTemplate().update(new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement ps = con.prepareStatement(prepSql, Statement.RETURN_GENERATED_KEYS);
int cnt = 0;
for (Iterator iter = parameterValues.iterator(); iter.hasNext(); ) {
PersistentValue pv = (PersistentValue)iter.next();
StatementCreatorUtils.setParameterValue(ps, cnt+1, pv.getSqlType(), null, pv.getValue());
cnt++;
}
return ps;
}
}, keyHolder);
assignGeneratedKey(o, keyHolder);
}
else {
final String prepSql = sql.toString();
updateCount = getJdbcTemplate().update(new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement ps = con.prepareStatement(prepSql);
int cnt = 0;
for (Iterator iter = parameterValues.iterator(); iter.hasNext(); ) {
PersistentValue pv = (PersistentValue)iter.next();