title: TypeORM hooks not being triggered, minimal project included
body: <p>I have a simple <code>BeforeInsert</code> and <code>AfterInsert</code> hook that is not being called. All it does is log <code>hook</code>. I am using nestjs-graphql but I don't think that is the issue. <a href="https://github.com/hkyq/nestprob" rel="nofollow noreferrer">Here</a> is a minimal Github repo with an example. You can run it by doing <code>npm i</code> and then sending a mutation (playground is at <code>localhost:3000/graphql)</code> with body <code>createUser(createInput:{password:"password" email:"test@test.com"})</code>. It should succeed and log <code>hook</code>.</p>
  
  <p><a href="https://github.com/hkyq/nestprob/blob/master/src/user/user.entity.ts#L20" rel="nofollow noreferrer">Here</a> is the hook, nothing is logged: </p>
  
  <pre class="lang-js prettyprint-override"><code>@Entity('user')
  export default class UserEntity {
  
      @PrimaryGeneratedColumn()
      id: number;
  
      @Column()
      @IsEmail()
      email: string;
  
      @Column()
      @Length(7, 42)
      password: string;
  
      @BeforeInsert()
      @AfterInsert()
      async validate() {
          console.log("hook")
      }
  }
  </code></pre>
  
  <p>It's called from a Service <a href="https://github.com/hkyq/nestprob/blob/master/src/user/user.service.ts#L16" rel="nofollow noreferrer">here</a>. The insertion does not throw an error, and <code>here2</code> is logged:</p>
  
  <pre class="lang-js prettyprint-override"><code>@Injectable()
  export class UserService {
      constructor(
          @InjectRepository(UserEntity)
          private readonly userRepository: Repository&lt;UserEntity&gt;,
      ) { }
  
      async createNew(email: string, password: string): Promise&lt;number&gt; {
          console.log("here2")
          const hashedPassword = "test"
          const res = await this.userRepository.insert({ email, password: hashedPassword })
          return res.identifiers[0].id
      }
  }
  </code></pre>