NODE-ORM2 extends を機能させようとしています。従うべき包括的な例を見つけることができません.モデル定義レベルで始まる部分的なものだけです(DBへの参照なし)。
基本的に、私は2つのモデルAとBを持っており、それらの間に1対1の関係があり、B.AIdはA.idへの外部キーです(簡単にするためにdbステートメントで確立する必要がありましたが、orm2は読み取れません)これらの関係。
a_b 関係テーブルを探している理由がわかりません。また、2 つのモデル間の関係を形成する方法もわかりません。
誰でも助けることができますか?hasOne 関係では、フィールドを指定することができますが、ここでは欠落しているようです。
DB:
create table A
(
`id` int(11) NOT NULL AUTO_INCREMENT key,
`addedOn` date DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1718087 DEFAULT CHARSET=utf8;
create table B
(
`id` int(11) NOT NULL AUTO_INCREMENT KEY,
AId int(11),
`addedOn` date DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1718087 DEFAULT CHARSET=utf8;
insert into A (addedOn)values('2012-02-02')
insert into B (AId, addedOn)values((select id from A), '2012-02-04')
モデル:
// User Model
module.exports = function (db, cb) {
console.log('ORM loading \'A\' model')
var A = db.define('A', {
id : Number,
addedOn : Date
}) ;
var B = A.extendsTo('B', {
id : Number,
AId : Number,
addedOn : Date
})
return cb()
}
検索:
var A = req.db.models.A
A.get(1718087, {autoFetch: true}, function(err, a){
a.getB(function(err, b){
console.log(JSON.stringify(b, null, 4))
})
console.log(JSON.stringify(a, null, 4))
})
例外:
ER_NO_SUCH_TABLE: Table 'mydb.a_b' doesn't exist