2014-11-07 1 views
4

Я хочу указать отношение betweet 2 таблицы mssql. Paymentcategory и выплат. paymentcategory.id присоединяется к столбцу payout.category.Отношение Loopback на поле non id

в payout.json модели я указал, как ForeignKey: ид,

"relations": { 
    "paymentcategories": { 
     "type": "hasOne", 
     "model": "Paymentcategory", 
     "foreignKey": "id" 
} 

но петлевой выглядит по умолчанию для поля идентификатора как PrimaryKey

Есть ли способ, чтобы указать присоединиться на категории поле. Предпочтительно в общем файле/models/payout.json?

"relations": { 
    "paymentcategories": { 
     "type": "hasOne", 
     "model": "Paymentcategory", 
     "foreignKey": "id", 
     "primaryKey": "category" ?????????????????? 
} 

Теперь я получаю эту ошибку:.

"error": { 
"name": "Error", 
"status": 400, 
"message": "Key mismatch: Paymentpayout.id: undefined, Paymentcategory.id: 1", 
"statusCode": 400, 

ответ

0

Ваша модель Paymentcategory должна быть

{ 
    "name":"Paymentcategory", 
    "options":{...}, 
    "properties":{ 
    "id":{...}, 
    ... 
    }, 
    "relations":{ 
    "payouts":{ 
     "type":"hasMany", 
     "model":"Payout", 
     "foreignKey":"category" 
    } 
    } 
} 

Обратите внимание, что одна категория выплат может иметь N выплат с этой категорией (для чего предназначена категоризация).

Ваша модель выплат должна быть

{ 
    "name":"Payout", 
    "options":{...}, 
    "properties":{ 
    "id":{...}, 
    "category":{...}, 
    ... 
    }, 
    "relations":{ 
    "paymentcategories":{ 
     "type":"belongsTo", 
     "model":"Paymentcategory", 
     "foreignKey":"category" 
    } 
    } 
} 

Важно отметить: оба объекта отношения не имеют один и тот же ForeignKey, и это Payout.category.