我有一个模型A,该模型可以有一个或多个与模型B关联的行。关系只需走一条路。
我跑了
result = await A.query()
.where('id', 123) // 123 is an already existing model A
.insertGraph([
{
B: [{id: 456}] // 456 is an already existing model B
}
]);
但是我收到错误消息Key (id)=(456) already exists.
据我了解,Objection试图创建一个ID为456的新模型B,我只想在两行A:123和B:456之间添加一个关系。
答案 0 :(得分:1)
由于您正在更新,因此我不会使用p <- autoplot(lm(Petal.Width ~ Petal.Length, data = iris), label.size = 3)
gridExtra::grid.arrange(grobs = p@plots, top = "some title")
。可以通过insertGraph()
和upsertGraph()
来完成。但是这种方法有点复杂,理想情况下我会这样做:
refs
使用const a = await A
.query()
.findById(123);
const numRelatedRows = await a.$relatedQuery('B')
.relate(456)
,您将以这种方式关联孩子456,但是其余孩子(如果存在)将是不相关的。您可以使用许多选项来修改upsert的行为,但是对我而言,upsertGraph()
是可行的方法:
$relatedQuery()