2015-03-10 4 views
7

У меня есть две таблицы, которые мне нужно связать. В таблице А есть одна таб. Я могу сделать это в TABLEA Модель:Sequelize Join on Non Primary Key

TableA.hasOne(models.TableB, { as: 'TableB', foreignKey: 'someID' }); 

Глядя на SQL, это пытается присоединиться TableA.ID и TableB.someID. На самом деле я хочу присоединиться к TableA.someNonPrimaryKey и TableB.someID.

Как я могу рассказать о продолжении присоединения к someNonPrimaryKey?

+1

Это не представляется возможным в sequelize на данный момент –

ответ

2

Это невозможно сделать в дальнейшем, но вы можете попробовать это.

Разница между HasOne и BelongsTo, HasOne вставляет ключ ассоциации в целевую модель, тогда как BelongsTo вставляет ключ ассоциации в исходную модель. ассоциации, а hasOne равна BelongsTo

TableB.belongsTo(models.TableA, { as: 'TableA', foreignKey: 'someID', targetKey: 'notTableAID' }); 
+0

metioned «targetKey», который я не заметил в документации – renatoargh

Смежные вопросы