diff --git a/lib/driver.js b/lib/driver.js index 358524d..5e624c9 100644 --- a/lib/driver.js +++ b/lib/driver.js @@ -122,6 +122,14 @@ var Driver = Class.extend({ } } + if (model.columns["lockVersion"]) { + columnNamesSql.push(this.escapeColumnName('lock_version') + ' = lock_version + 1'); + } + + if (model.columns["updatedAt"]) { + columnNamesSql.push(this.escapeColumnName('updated_at') + ' = NOW()'); + } + if (columnNamesSql.length === 0) { throw new Error("No columns to update."); } @@ -129,9 +137,10 @@ var Driver = Class.extend({ var idColumndName = model.getIdPropertyName(); values.push(id); - var sql = util.format('UPDATE %s SET %s WHERE %s = %s', model.tableName, columnNamesSql.join(','), idColumndName, this.getValuesSubstitutionString(valueSubstitutionIndex++)); + var defaultUpdateQuery = 'UPDATE %s SET %s WHERE %s = %s'; + var sql = util.format(defaultUpdateQuery, model.tableName, columnNamesSql.join(','), idColumndName, this.getValuesSubstitutionString(valueSubstitutionIndex++)); var results = { sql: sql, values: values }; - //console.log(results); + return results; },