是否可以构建记录实例,设置主键/更新属性并更新实例?
示例:
exports.updateModel = async (event, context) => {
const body = JSON.parse(event.body);
const errors = validate(body, updateSchema).errors;
if (errors && errors.length > 0) {
return error(httpCodes.badRequest, 'Invalid Request');
}
let model = db.Model.build();
const result = await model.update({
id : body.modelId,
column : body.newValue
});
return ok({model : result});
}
但是,当我这样做时,我得到一个关于外键为空的错误。现有记录已经设置了此设置,我不会在此更新调用中覆盖它。
“ errorMessage”:“列\” foreign_id \“中的空值违反了非空约束”
我知道我可以批量更新,并查询单个记录和更新,但是我很好奇是否有可能建立通用模型,设置id和更新。
答案 0 :(得分:0)
经过一番研究/玩耍,找到了答案。
build
函数中有一个参数,该参数采用名为options
的对象。 options
的属性isNewRecord
默认为true。如果将其设置为false并使用update()
,它将在设置主键后更新现有记录。
let instance = await db.Model.build({}, {isNewRecord: false});
const result = await instance.update({
id: instanceId,
column : newValue
});
几年前看起来还this question has been asked,却没有答案