0

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
4

1 に答える 1