title: hibernate - how to JoinColumn an EmbeddedId
body: <p>Situation: I have a masterDB and a library1DB and library2DB.</p>
  
  <p>library1DB and library2DB are two separate database but has the same schema because each library must have their own database. Now we have a masterDB, this is an aggregated version of all the data in all libraries (library1DB and library2DB), still taking note of their respective ids and mapping them to their library id.</p>
  
  <p>Here's I want my tables to be structured:
  book
  - book_id
  - library_id
  - title
  - shelf_id
  shelf
  - shelf_id
  - library_id
  - book_id
  - description</p>
  
  <p>I have these models:</p>
  
  <pre><code>@Entity
  public class Book {
  
      @EmbeddedId
      private BookKey bookKey;
  
      @ManyToOne(fetch = FetchType.LAZY)
      @JoinColumns({
              @JoinColumn(name = "SHELF_ID", referencedColumnName = "SHELF_ID"),
              @JoinColumn(name = "LIBRARY_ID", referencedColumnName = "LIBRARY_ID")
      })
      private ObjectA objectA;
  
      @ManyToOne(fetch = FetchType.LAZY)
      @JoinColumns({
              @JoinColumn(name = "ANOTHER_ID", referencedColumnName = "ANOTHER_ID"),
              @JoinColumn(name = "LIBRARY_ID", referencedColumnName = "LIBRARY_ID")
      })
      private ObjectB objectB;    
  
      @Column
      private String title;
  
  }
  
  @Embeddable
  public class BookKey implements Serializable {
      @Column(name = "BOOK_ID")
      private long bookId;
      @Column(name = "LIBRARY_ID")
      private long libraryId;
  }
  </code></pre>
  
  <p>But I get this exception:</p>
  
  <pre><code>Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: Book column: library_id (should be mapped with insert="false" update="false")
  </code></pre>
  
  <p>I've tried using @IdClass instead of @Embeddable and @EmbeddedId, and I got this:</p>
  
  <pre><code>Caused by: org.hibernate.DuplicateMappingException:  Table [book] contains physical column name [libraryId] represented by different logical column names: [libraryId], [LIBRARY_ID]
  </code></pre>
  
  <p>Any help?</p>
  
  <p>Thanks!</p>