title: Self-Referencing ManyToMany Relationship TypeORM
body: <p>I have just started using TypeORM and I'm struggling getting the following relationship to work:</p>
  
  <p>User->Friends, whereas a Friend is also a User Object.
  My getters, getFriends &amp; getFriendsInverse are working, however; I do now want to distinguish between the two. In other words; when I perform a mysql join I do not want to do a left join on friends and another one on inverseFriends.</p>
  
  <p>The getter getFriends() needs to return all friends, regardless of which "side" the object I'm on.</p>
  
  <p>Does that make sense?</p>
  
  <p>This is my model definition:</p>
  
  <pre><code>getFriends() {
      // This method should also return inverseFriends;
      // I do not want to return the concat version; this should
      // happen on the database/orm level
      // So I dont want: this.friends.concat(this.inverseFriends) 
      return this.friends;
  }
  
  @ManyToMany(type =&gt; User, user =&gt; user.friendsInverse, {
      cascadeInsert: false,
      cascadeUpdate: false,
  })
  @JoinTable()
  friends = [];
  
  @ManyToMany(type =&gt; User, user =&gt; user.friends, {
      cascadeInsert: true,
      cascadeUpdate: true,
      cascadeRemove: false,
  })
  friendsInverse = [];
  </code></pre>
  
  <p>I hope someone understands my question :D
  Thanks
  Matt</p>