Я хотел бы обновить строки отношения hasMany, у меня есть таблица InRoutes, в которой может быть много InRouteDetails, поэтому, когда я обновляю InRoute, мне также необходимо обновить его детали, возможны три случая, удалить деталь , обновите детали и добавьте детали.
Когда я пытаюсь обновить, используя setInRouteDetails, но по какой-то причине он пытается получить InRouteDetail, который равен объекту, выдавшему мне эту ошибку: Сокращенное неверное значение DOUBLE: '[object Объект] '
Это моя модель:
export default (sequelize, DataType) => {
const InRoutes = sequelize.define('InRoutes', {
id: {
type: DataType.INTEGER,
primaryKey: true,
autoIncrement: true,
},
name: {
type: DataType.STRING,
allowNull: false,
validate: {
notEmpty: true,
},
},
description: {
type: DataType.TEXT,
allowNull: true,
},
createdBy: {
type: DataType.STRING,
allowNull: true,
},
updatedBy: {
type: DataType.STRING,
allowNull: true,
},
}, {
classMethods: {
associate: (models) => {
InRoutes.hasMany(models.InRoutesDetails, {
foreignKey: 'InRouteId',
as: 'InRouteDetails',
onDelete: 'CASCADE',
});
InRoutes.belongsTo(models.Trunks, {
foreignKey: 'trunkId',
as: 'TrunkId',
onDelete: 'CASCADE',
});
},
},
});
return InRoutes;
};
Здесь я пытаюсь обновить "InRoute" с его ассоциацией "InRouteDetails":
async update(data, params, updatedBy) {
data.updatedBy = updatedBy.username;
try {
const inRoute = await this.InRoutes.findOne({ where: params });
const teste = [{
id: 2,
mask: '89',
remove: 4,
add: '3',
destinationType: 'callback',
destination: 2,
InRouteId: 2,
}];
await inRoute.addInRouteDetails(teste);
await inRoute.update(data);
return defaultResponse(inRoute);
} catch (error) {
return errorResponse(error.message, HttpStatus.UNPROCESSABLE_ENTITY);
}
}
Это дает мне этот результат на консоли:
Executing (default): UPDATE `InRoutesDetails` SET `InRouteId`=?,`updatedAt`=? WHERE `id` IN ('[object Object]')
Он пытается сравнить id с каким-то объектом.