πUsing Transactions
Persistency
Using Transactional Decorator
...
import {Transactional} from "@node-boot/starter-persistence";
@Service()
export class UserService {
constructor(
private readonly logger: Logger,
private readonly userRepository: UserRepository,
) {
}
@Transactional() // Will open a transaction if one doesn't already exist
public async createUser(userData: CreateUserDto): Promise<User> {
this.logger.info(`Creating user ${userData.name}`);
const existingUser = await this.userRepository.findOneBy({
email: userData.email,
});
return optionalOf(existingUser)
.ifPresentThrow(() => new HttpError(409, `This email ${userData.email} already exists`))
.elseAsync(() => this.userRepository.save(userData));
}
}Transaction Propagation
Isolation Levels
Transaction Hooks
Transactions API
Transactions Configuration
@Transactional Options
Storage Driver
Utility Functions
runInTransaction(fn: Callback, options?: Options): Promise<...>
wrapInTransaction(fn: Callback, options?: Options): WrappedFunction
Last updated