不要怂,就是干,撸起袖子干!

Commit 9107d5e2 by Sascha Depold

added option to force find/findAll to fetch associations

1 parent 46af7eca
Showing with 18 additions and 4 deletions
...@@ -112,13 +112,24 @@ exports.SequelizeTable = function(Sequelize, sequelize, tableName, attributes, o ...@@ -112,13 +112,24 @@ exports.SequelizeTable = function(Sequelize, sequelize, tableName, attributes, o
sequelize.query( sequelize.query(
Sequelize.sqlQueryFor('select', queryOptions), Sequelize.sqlQueryFor('select', queryOptions),
function(result) { function(result) {
var objects = Sequelize.Helper.Array.map(result, function(r) { return table.sqlResultToObject(r) }) var objects = result.map(function(r) { return table.sqlResultToObject(r) })
if(_callback) _callback(objects) if(queryOptions.fetchAssociations) {
var fetchings = []
objects.map(function(object) { fetchings.push({fetchAssociations: object}) })
Sequelize.chainQueries(fetchings, function() {
if(_callback) _callback(objects)
})
} else {
if(_callback) _callback(objects)
}
} }
) )
}, },
find: function(conditions, callback) { find: function(conditions, options, callback) {
// use the second param as callback if it is no object (hash)
var _callback = (typeof options == 'object') ? callback : options
sequelize.query( sequelize.query(
Sequelize.sqlQueryFor('select', { Sequelize.sqlQueryFor('select', {
table: table.tableName, table: table.tableName,
...@@ -127,7 +138,10 @@ exports.SequelizeTable = function(Sequelize, sequelize, tableName, attributes, o ...@@ -127,7 +138,10 @@ exports.SequelizeTable = function(Sequelize, sequelize, tableName, attributes, o
limit: 1 limit: 1
}), function(result) { }), function(result) {
var _result = result[0] ? table.sqlResultToObject(result[0]) : null var _result = result[0] ? table.sqlResultToObject(result[0]) : null
if (callback) callback(_result) if(options.fetchAssociations && (_result != null))
_result.fetchAssociations(function() { if (_callback) _callback(_result) })
else
if (_callback) _callback(_result)
} }
) )
}, },
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!