import { prismaTransactional } from "@transactional/prisma";
const prisma = new PrismaClient().$extends(extension);
Prisma transactional extensions run queries using the unextended client, so make sure to use the transactional extension after other extensions, like logging extensions or extensions that add methods to the client.
Using @Transactional Decorator
import { Transactional } from "@transactional/core"
class Service {
@Transactional()
findCats() {
// now all your prisma queries are run inside the same transaction.
await prisma.cat.findMany({});
await prisma.cat.findFirst({});
...
}
}
Using transactional Method
import { transactional } from "@transactional/core"
const findCats = transactional(() => {
// now all your prisma queries are run inside the same transaction.
return prisma.cat.findMany({});
})
await findCats();