In my models I have One-To-Many relationships
Team.hasMany(Player);
Player.belongsTo(Team);
const MyTeam = await Team.findOne({
where: {
name: "chikago"
},
include: Playes
});
result in json like this
MyTeam": {
"id" : 5,
"name" : "chikago",
"title" : "lets'go Chikago!!!"
"Players": [
{
"id": 1,
"name": "bob"
"years": 18
},
{
"id": 2,
"name": "tom"
"years": 20
},
]
};
so in MyTeam I have result with team and players related to it.
now i want to edit some values in MyTeam entity and in players, and create new player, then save all this with try...catch
handling error;
for exapmle:
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);
}
but there is a way if i need to save all my editing some like
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);
};
I an trying to do something like this, as described in https://github.com/sequelize/sequelize/issues/5471#issuecomment-216373780 but model saving and updated as they push to array
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);
};