Closed PymZoR closed 10 years ago
Hi, as the title is relevant enough, this is how I produced the bug:
var Fundation = db.define('fundation', { id: { mapsTo: 'fun_id', type: 'serial', key: true }, name: { mapsTo: 'fun_name', type: 'text', size: 40 }, removed: { mapsTo: 'fun_removed', type: 'boolean', defaultValue: false } }, { collection: 't_fundation_fun', validations: { name: [ orm.enforce.unique('Name already taken.'), orm.enforce.notEmptyString('Fundation must have name.') ], } } ); // model Fundation
Fundation.find({ name: 'thisIsATest' }).remove(function(err) { console.log(err); done(); }); // test
Will produce with the debug flag:
(orm/mysql) SELECT * FROM t_fundation_fun WHERE name = 'thisIsATest' { [Error: ER_BAD_FIELD_ERROR: Unknown column 'name' in 'where clause'] code: 'ER_BAD_FIELD_ERROR', errno: 1054, sqlState: '42S22', index: 0 }
t_fundation_fun
name
However, if I change the test code to:
Fundation.one({ name: 'thisIsATest' }, function(err, testFundation) { testFundation.remove(function(err) { console.log(err); assert.equal(err, null); }); });
Will produce the correct SQL for the find:
(orm/mysql) SELECT fun_id, fun_name, fun_removed FROM t_fundation_fun >WHERE >fun_name = 'thisIsATest'
fun_id
fun_name
fun_removed
But not for the delete ! (it should be fun_id, not id)
(orm/mysql) DELETE FROM t_fundation_fun WHERE id = 3
id
It seems like chaining find doesn't work weel with mapsTo, as well for using the delete method
Fixed & published in ORM 2.1.19
Hi, as the title is relevant enough, this is how I produced the bug:
Will produce with the debug flag:
However, if I change the test code to:
Will produce the correct SQL for the find:
But not for the delete ! (it should be fun_id, not id)
It seems like chaining find doesn't work weel with mapsTo, as well for using the delete method