问题描述
我会详细说明。
让我们说说我有这个交易方法(它的代码不完整,但是足以说明这个想法):
public async create(createuserDto: RegisterUserDto): Promise<UserEntity> {
const queryRunner = this.connection.createqueryRunner();
await queryRunner.connect();
await queryRunner.startTransaction();
try {
const registerUserDeviceBody: IRegisterUserDevice = {
deviceIP: createuserDto.deviceIP,deviceName: createuserDto.deviceName,deviceidentifier: createuserDto.deviceName,};
const userDevice = await this.registerUserDevice(registerUserDeviceBody,queryRunner);
await queryRunner.commitTransaction();
} catch (err) {
await queryRunner.rollbackTransaction();
throw new HttpException(err.message,HttpStatus.BAD_REQUEST);
} finally {
await queryRunner.release();
}
return;
}
据我所知,这里我将queryRunner
作为参数传递给registerUserDevice
方法是为了在一个DB连接中执行整个操作并避免DB锁定等。我对吗?而且我总是必须这样做吗?
之所以这样问,是因为我正在实现一个方法,该方法将使用一组较早实现的方法来创建自己的数据库连接(使用存储库模式),所以我试图找出原因什么以及如何重构该代码。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)