sequelize.js - 只有在所有模型更新后才续集保存项目
问题描述
在我的模型中,我有一对多的关系
Team.hasMany(Player);
Player.belongsTo(Team);
const MyTeam = await Team.findOne({
where: {
name: "chikago"
},
include: Playes
});
结果像这样的json
MyTeam": {
"id" : 5,
"name" : "chikago",
"title" : "lets'go Chikago!!!"
"Players": [
{
"id": 1,
"name": "bob"
"years": 18
},
{
"id": 2,
"name": "tom"
"years": 20
},
]
};
所以在 MyTeam 中,我得到了与团队和球员相关的结果。现在我想在 MyTeam 实体和玩家中编辑一些值,并创建新玩家,然后保存所有这些并try...catch
处理错误;
例如:
MyTeam.title = "here are we go";
try {
await MyTeam.save();
} catch (error) {
console.log(error);
}
let newPlayer = new Player({...});
try {
await newPlayer.save();
} catch (error) {
console.log(error);
};
// here many other code ...
try {
MyTeam.Players.map(async player => {
player.years = player.years + 1;
await player.save();
});
} catch (error) {
console.log(error);
}
但是如果我需要保存我所有的编辑,有一种方法
let entityManager = new Sequeilize('entityManager');
MyTeam.title = "here are we go";
entityManager.add(MyTeam);
let newPlayer = new Player({...});
entityManager.add(newPlayer);
MyTeam.Players.map(player => {
player.years = player.years + 1;
entityManager.add(player);
});
try {
await entityManager.save();
} catch (error) {
console.log(error);
};
我试图做这样的事情,如https://github.com/sequelize/sequelize/issues/5471#issuecomment-216373780中所述, 但模型保存并在它们推送到数组时更新
let savingEntities = [];
MyTeam.title = "here are we go";
savingEntities.push(MyTeam);
let newPlayer = new Player({...});
savingEntities.push(newPlayer);
MyTeam.Players.map(player => {
player.years = player.years + 1;
savingEntities.push(player);
});
try {
await Promise.all(savingEntities);
} catch (error) {
console.log(error);
};
解决方案
推荐阅读
- sql - 在Oracle的文本中找到单词时如何获取单词的位置?
- c++ - 为什么我的 RLE 代码显示标准超出 c++ 范围?
- php - 防止用户浏览其他页面
- tabulator - Tabulator calculating a total price
- python - 为什么在我的 jupyter notebook 中导入 geopandas 时出现错误?
- jenkins - 我如何设置一个 jenkins 作业,该作业并行调用另一个 jenkins 作业,但使用数组作为参数
- android - 如何在不破坏功能的情况下更改已弃用的房间交易
- java - 一个没有倒数到零的 CountDownLatch 怎么能不被打断返回呢?
- r - 如何在 ggtree 中更改 groupOTU/groupClade 创建的默认颜色
- python - 为什么 python Queue 没有虚假行为