我试着做一个家谱。我有模特familyMember,应该有两个关系。 首先是配偶,第二是孩子。现在我尝试了:
"relations": {
"spouse": {
"type": "hasOne",
"model": "familyMember",
"foreignKey": "familyMemberId"
},
"children": {
"type": "hasMany",
"model": "familyMember",
"foreignKey": "familyMemberId"
}
}
但是当我创造一个孩子并且在配偶之后它返回:
{
"error": {
"name": "Error",
"status": 500,
"message": "HasOne relation cannot create more than one instance of familyMember"
}
}
当我请求配偶时,它会归还我之前做过的孩子。
我该如何解决这个问题?
答案 0 :(得分:0)
根据我从您的问题中了解到,您有一个模型CREATE OR REPLACE FUNCTION select_from_products()
RETURNS TABLE (colorid int, name text, abbr text)
LANGUAGE plpgsql as $$
DECLARE v_colorid INT;
BEGIN
v_colorid := 3;
RETURN QUERY
SELECT *, substring(p.name,1,3)
FROM products p
WHERE p.colorid = v_colorid;
END $$;
SELECT * FROM select_from_products();
,并且您正在引用与关系familyMembers
和{相同模型的属性children
和spouse
分别为{1}}。
它不是实现你想要通过环回的最佳方式。它有可能出错。
最好的方法是首先通过环回创建模型hasMany
。
然后通过继承基础hasOne
模型,创建两个不同的模型FamilyMember
和children
以及其他相关成员模型。
然后轻松添加这些模型之间的关系。
了解更多信息。 Extending a model in loopback