Loopback: Multiple foreignkeys possibility in Model Relation?

Created on 17 Feb 2016  路  30Comments  路  Source: strongloop/loopback

In the loopback model relations section, you can specificity a foreignKey to be referenced in the other model. As far as I know, It will only take one field, but what about I have a composite primary key and want to be referenced in the other model?

Can I do something like?

"foreignKey":["id1","id2"]

feature major team-apex

Most helpful comment

This story is already in backlog, we will make an investigation in the future.

All 30 comments

@chojowliu I think we support composite id, see docs here:
https://docs.strongloop.com/display/public/LB/Model+definition+JSON+file#ModeldefinitionJSONfile-CompositeIDs
But "the composite id is not fully supported for the *byId methods, such as findById. " see details

I am not sure is composite foreign key supported ATM, @raymondfeng could you confirm it? Thanks a lot.

@jannyHou I do know loopback support composite id, but not in the relation section

"relations": { "supplier_acct": { "type": "hasOne", "model": "account", "foreignKey": "supplierId" // you can't have "foreignKey":["id1","id2"], as far as I know we can only use one single column. } }

anyone?

@jannyHou any update on this? I search the web, it seems like people are asking for the same question I have, but none of them been answered.

@raymondfeng could you confirm whether we support composite foreignKey? Thanks a lot!

I would like to know also

+1

For anyone interested in multiple foreignKeys, we don't support it as first class now, I label it as a feature, hope we can fully support it in the future.

+1

+1

I welcome even suggestion where to look into the code of loopback and how to try to implement it on my own.

I would mark this rather than feature as major issue, as this is preventing usage of loopback in certain scenarios.

I of course understand there is workaround by going with custom method with custom SQL queries where I can write the joins using multiple keys by hand. But it is breaking the beauty of model driven design of loopback and in general I think direct SQL queries method should be used only in edge scenarios as temporary workaround.

@archenroot make sense. Labelled it as major

Copied from https://github.com/strongloop/loopback/issues/2955#issue-190276274
@elfahxh let's keep discussion here.
Support composite keys in embeds Relation:

  • Scenario:

I created two Models, Model-B is an embedded model in Mode-A, Model-A must have sharding key which have two fields. When I call such related method, Model-A.Model-B.create(), will failed.
The root-cause is that, underline, it will call updateAttributes() of Model-A, while the search filter only have "_id" field, cannot define a combined multiple keys to find Model-A from database. hence, will encounter a failure.

+1

+1

Anyone also interested in this feature please do 馃憤 on the first comment :) instead of adding new comments. Thanks!

Any update on this?

This story is already in backlog, we will make an investigation in the future.

+1

Given that [email protected] is coming soon, we're not going to be making new features for core components.

+1

+1

still looking for multiple ids / keys support...

+1

@kjdelisle - what was the reason for closing this issue? Fact that [email protected] has this feature built in or fact that you simply don't have time to look at this or that we should ask for this feature within connectors instead of core?

Thanks for answer.

@all - I opened this issue on Oracle and Postgres connector as well, but it is being overlooked at all....

https://github.com/strongloop/loopback-connector-oracle/issues/87
https://github.com/strongloop/loopback-connector-postgresql/issues/184

News about this feature in loopback 4?
Thanks

Hello, LoopBack 4.0 release is very close, we don't have bandwidth to work on composite foreign keys in LoopBack 3.x. I opened a new issue in loopback-next, I'd like us to consider the problem of composite keys in a wider context. Let's move further discussions to the new issue please.

https://github.com/strongloop/loopback-next/issues/1830

Was this page helpful?
0 / 5 - 0 ratings

Related issues

crandmck picture crandmck  路  3Comments

Overdrivr picture Overdrivr  路  4Comments

futurus picture futurus  路  3Comments

Overdrivr picture Overdrivr  路  3Comments

ImanMh picture ImanMh  路  4Comments