title: org.hibernate.MappingException: Foreign key must have same number of columns as the referenced primary key
body: <p>Why am I getting this following exception in my hibernate application.</p>
  
  <pre><code>Caused by: org.hibernate.MappingException: Foreign key (FK2C47CFCAB95CF1D: EMP [ADDR_ID,ADDR_ZIP])) must have same number of columns as the referenced primary key (ADDRESS [ID_COL])
      at org.hibernate.mapping.ForeignKey.alignColumns(ForeignKey.java:110)
      at org.hibernate.mapping.ForeignKey.alignColumns(ForeignKey.java:93)
      at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1714)
      at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1637)
      at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1350)
      at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
      at org.hibernate.ejb.EntityManagerFactoryImpl.&lt;init&gt;(EntityManagerFactoryImpl.java:94)
      at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:920)
      ... 9 more
  </code></pre>
  
  <p>For my mapping </p>
  
  <pre><code>@ManyToOne
  @JoinColumns({
      @JoinColumn(name="ADDR_ID", referencedColumnName="ID"),
      @JoinColumn(name="ADDR_ZIP", referencedColumnName="ZIP")
  })
  @NotFound(action=NotFoundAction.IGNORE)
  private AddressEntity addressEntity;
  </code></pre>
  
  <p>My AddressEntity looks as follows</p>
  
  <pre><code>public AddressEntity {
      @Id
      @Column(name = "ID_COL")
      private String item;
  
      @Column(name = "ID")
      private String ID;
  
      @Column(name = "ZIP")
      private String ZIP;
  
      ...
      ...
  
  }
  </code></pre>
  
  <p>JoinColumn need not to point to a primary key. But still the exception occurs</p>