title: TypeORM : relation with where clause defined in entity
body: <p>I want to make a SalesOrder entity which have 2 OneToMany relations to the same entity but with a different criteria.</p>
  <p>The final goal is to retrieve addresses like that:</p>
  <pre class="lang-js prettyprint-override"><code>const salesOrder = await SalesOrder.findOne(1, {
      relations: ['receiverAddress', 'senderAddress']
  });
  console.log(salesOrder.receiverAddress)
  console.log(salesOrder.senderAddress)
  </code></pre>
  <p>I can't figure out how to <strong>filter addresses relations by type</strong> in the SalesOrder entity.</p>
  <p>I want to do something like that:</p>
  <pre class="lang-js prettyprint-override"><code>// SalesOrder.ts
  @Entity()
  export class SalesOrder extends BaseEntity {
    @Column()
    @PrimaryGeneratedColumn()
    id: number
  
    @OneToMany(SalesOrderAddress, salesOrderAddress =&gt; salesOrderAddress, {
      where: {
        type: 'receiver' // join condition salesOrderAddress.type = 'receiver'
      }
    })
    receiverAddress: SalesOrderAddress
  
    @OneToMany(SalesOrderAddress, salesOrderAddress =&gt; salesOrderAddress, {
      where: {
        type: 'sender' // join condition salesOrderAddress.type = 'sender'
      }
    })
    senderAddress: SalesOrderAddress
  }
  </code></pre>
  <p><strong>Problem :</strong> <code>where</code> clauses are not handled in typeorm decorators.</p>
  <p>Is it possible to get something similar (without using query builder)?</p>
  <p>I know that I can use 2 OneToOne relations instead, but it implies that the SalesOrder db contains two foreign keys : receiverAddressId and senderAddressId. I prefer to use OneToMany relations since it allows to have just a single foreign key on the SalesOrderAddress (e.g. salesOrderId).</p>