Sequelize - существуют ли двунаправленные ассоциации? - PullRequest
0 голосов
/ 24 октября 2018

В документации Sequelize ORM http://docs.sequelizejs.com/ я не вижу ссылок на двунаправленные ассоциации между моделями, как мы знаем из Java Hibernate или PHP Doctrine.

Итак, Sequelize не поддерживает двусторонние ассоциации из коробки?

1 Ответ

0 голосов
/ 27 октября 2018

Это зависит от того, что вы подразумеваете под коробкой.

Двунаправленные ассоциации в Sequelize достигаются путем определения двух отдельных ассоциаций в каждой соответствующей модели.Насколько я знаю, другого пути нет.

например.У нас есть модель пользователя и модель поста.Модель Post содержит внешний ключ от User с именем UserId, это связь один ко многим.Чтобы достичь этого в двух направлениях, вы должны добавить ассоциацию в пользовательскую модель, а также в модель Post, как показано ниже.

User.associate = function(models) {
    models.User.hasMany(models.Post, {
        foreignKey:"UserId"
    })
}

Post.associate = function(models)  {
    models.Post.belongsTo(models.User, {
        foreignKey:"UserId"
    })
}

Подобные подходы применимы для любого типа ассоциации.Я знаю, что это не самая удобная вещь.

...