Skip to content

Instantly share code, notes, and snippets.

@B4nan
Last active December 21, 2022 09:03
Show Gist options
  • Select an option

  • Save B4nan/5300ae24d14131a5346a76a3843edc94 to your computer and use it in GitHub Desktop.

Select an option

Save B4nan/5300ae24d14131a5346a76a3843edc94 to your computer and use it in GitHub Desktop.
MikroORM 4.1: Bulk updates
for (let i = 1; i <= 5; i++) {
const u = new User(`Peter ${i}`, `peter+${i}@foo.bar`);
em.persist(u);
}
await em.flush();
// insert into `user` (`name`, `email`) values
// ('Peter 1', 'peter+1@foo.bar'),
// ('Peter 2', 'peter+2@foo.bar'),
// ('Peter 3', 'peter+3@foo.bar'),
// ('Peter 4', 'peter+4@foo.bar'),
// ('Peter 5', 'peter+5@foo.bar');
for (const user of users) {
user.name += ' changed!';
}
await em.flush();
// update `user` set
// `name` = case
// when (`id` = 1) then 'Peter 1 changed!'
// when (`id` = 2) then 'Peter 2 changed!'
// when (`id` = 3) then 'Peter 3 changed!'
// when (`id` = 4) then 'Peter 4 changed!'
// when (`id` = 5) then 'Peter 5 changed!'
// else `priority` end
// where `id` in (1, 2, 3, 4, 5)
em.remove(users);
await em.flush();
// delete from `user` where `id` in (1, 2, 3, 4, 5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment