我很难弄清楚帆/水线是否能做到这一点。 (所以如果这是可能的话,一个适当的答案就是,我一直在阅读文档,查看github问题并查看代码,但仍然不确定)
我有一对一的关联设置,其中一个'帐户'有联系'
我试图在风帆蓝图中创建联系人(所以基本上只使用create()方法)
account =
{ name: 'Corp'
contact:{
firstName: 'Bob',
lastName: 'Jones'
}
}
Account.create(account).exec()应该创建帐户和关联的联系人吗?因为我收到以下错误
TypeError: Cannot convert null to object
我的模型设置如此
account.js
module.exports = {
migrate: 'safe',
tableName: 'accounts',
autoPK: false,
attributes: {
id: {
type: 'INTEGER',
primaryKey: true,
autoIncrement: true
},
contactId: 'INTEGER',
name: {type: 'STRING', maxLength: 100},
contact: {
model: 'contact',
columnName:'contactId'
}
}
};
我使用风帆10.0-rc8 / waterline 10.0-rc15
答案 0 :(得分:1)
在创建与其父级(也称为“嵌套式创建”)同时生成的关联实例时应该可以正常工作,但在处理遗留数据库时,要正确处理这些事情是很棘手的。在您的情况下,contactId
属性声明可能会导致问题,因为Waterline期望外键字段是隐式的,而不是显式的。尝试删除:
contactId: 'INTEGER',
完全看看它在哪里得到你。
答案 1 :(得分:1)
经过一些研究后我发现,从版本0.10.0-rc15的水线开始,你就无法拥有自定义的外键。在上面的模型中,如果我将“contactId”列更改为“contact”(基本上使它看起来与文档中的完全一样。那么它可以工作。
我做了以下错误报告 https://github.com/balderdashy/waterline/issues/529