title: Hibernate @ManyToMany uses only FK from owning table to remove entries in connection table
body: <p>I have <code>@ManyToMany</code> relationship of <code>Author</code> and <code>Source</code> entities, where <code>Author</code> is owning entity. When I remove author everything is OK and hibernate generates <code>Hibernate: delete from author_source where author=?</code>. But when I remove source, Hibernate generates same query for each occurrence of <code>authorId</code> in <code>author_source</code> table which had connection with deleted source. So this query also removes connection between other sources (if author had two sources, both connections are removed).</p>
  
  <p>Author entity:</p>
  
  <pre><code>@Entity
  @Table(name = "author")
  public class Author implements Serializable {
  
      @Id
      @Column(name = "authorId")
      @GeneratedValue
      private Integer authorId;
  
      @SourceFormat // own formatter 
      @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
      @JoinTable(
              name = "author_source",
              joinColumns = { @JoinColumn(name = "author") },
              inverseJoinColumns = { @JoinColumn(name = "source") }
      )
      private Set&lt;Source&gt; sources;
  }
  </code></pre>
  
  <p>Source entity:</p>
  
  <pre><code>@Entity
  @Table(name = "source")
  public class Source implements Serializable {
  
      @Id
      @Column(name = "sourceId")
      @GeneratedValue
      private Integer sourceId;
  
      @ManyToMany(fetch = FetchType.EAGER, mappedBy = "sources")
      private Set&lt;Author&gt; authors;
  }
  </code></pre>
  
  <p>I want Hibernate to generate </p>
  
  <pre><code>delete from author_source where author=?
  </code></pre>
  
  <p>query when I remove author, and</p>
  
  <pre><code>delete from author_source where source=?
  </code></pre>
  
  <p>when I remove source. Is it possible or should I do it manually?</p>