官网示例
import { getManager } from "typeorm";
await getManager().transaction(async transactionalEntityManager => {
await transactionalEntityManager.save(users);
await transactionalEntityManager.save(photos);
// ...
});
应用
await getManager().transaction(async transactionEntityManager => {
await transactionalEntityManager.save(users);
const totalInfo: EduUserTotal = await transactionEntityManager.findOne(EduUserTotal, {
userId: params.userId,
globalId: params.globalId,
deletedAt: 0,
classType: "course",
studyYear: params.studyYear,
tenantId: params.tenantId
});
......
await transactionalEntityManager.update(users);
}).catch(reason => {
this.ctx.logger.info("=============================================");
temp.msg = ReturnMsg.LEARN_RECORD_ERROR;
temp.code = ReturnCode.LEARN_RECORD_ERROR;
this.ctx.logger.info("=============================================");
})
此种方式的事务报错会自动回滚,不需要显式提交,注意,如果事务过程中需要查询事务中更新的数据,请使用transactionEntityManager的API进行查询