Me gustaría poder realizar consultas a la base de datos dentro de un método de una entidad Typeorm cuando esté a punto de guardarse.
El problema es que si la entidad se guardará dentro de una transacción, no puedo acceder a esta transacción para realizar mis consultas y puedo obtener resultados extraños porque no estoy usando el administrador de entidades transaccional correcto.
Mi entidad:
class User { @PrimaryGeneratedColumn() id: number; .... @BeforeUpdate() @BeforeInsert() // this method will be executed before the entity is saved in db async validateBefore(): Promise<void> { await getManager().find(.....) /* I use getManager to perform a query on the db, but this just gives me a new entityManager different from the current transaction */ } }Controlador:
await getManager().transaction(async (transactionalEntityManager) => { const newUser: User = plainToClass(User, {.....}) // I use plainToClass from class-transformer to instantiate a User entity from a plain object await transactionalEntityManager.save(newUSer) // I save the entity to the db with the transaction manager // this will fail because this will trigger the validateBefore method which doesn't use the right transactionalEntityManager })¿Hay alguna forma de pasar el administrador de la entidad al método de la entidad?