title: Using @IdClass for storing entity with composite primary key, but fails to persist
body: <p>my id class as follows,</p>
  
  <pre><code>public class EmployeeId implements Serializable{
      public EmployeeId(){}
      public EmployeeId(Integer id, String country){
          this.id = id;
          this.country = country;
      }
  
      private Integer id;
      private String country;
  
      @Override
      public int hashCode(){        
          return this.getCountry().hashCode() + getId();
      }
  
      @Override
      public boolean equals(Object o){
          boolean flag = false;
          EmployeeId myId = (EmployeeId) o;
  
          if((o instanceof EmployeeId) 
                  &amp;&amp; (this.getCountry().equals(myId.getCountry()))
                  &amp;&amp; (this.id == myId.getId())){
              flag = true;
          }
          return flag;
      }
  // rest of the code with getters only
  }
  </code></pre>
  
  <p>Following is my entity using </p>
  
  <pre><code>@Entity
  @IdClass(EmployeeId.class)
  @Table(name="TBL_EMPLOYEE_FOUR")
  public class EmployeeEntityTwo {
  
      public EmployeeEntityTwo(){}
      public EmployeeEntityTwo(Integer id,String country, String empName){
          this.country = country;
          this.employeeId = id;
          this.empName = empName;
      }
  
      @Id
      @Column(name="ID")
      private Integer employeeId;
  
      @Id
      @Column(name="COUNTRY",length=50)
      private String country;
  
      @Column(name="NAME",length=50)
      private String empName;
  // getters and setters
  }
  </code></pre>
  
  <p>This is my table</p>
  
  <pre><code>create table TBL_EMPLOYEE_FOUR(
      ID integer, 
      COUNTRY varchar(50),
      NAME varchar(50),
      constraint PK_EMP_00239 primary key(ID,COUNTRY)
  )
  </code></pre>
  
  <p>This is what i am trying to run </p>
  
  <pre><code> private static void idClassStore(EntityManager em) throws Exception{
       List&lt;EmployeeEntityTwo&gt; employees = Arrays.asList(new EmployeeEntityTwo(12, "KENYA", "Ridushi Ogambe"),
                                                         new EmployeeEntityTwo(13, "GHANA", "Mikila Hanza"),
                                                         new EmployeeEntityTwo(14, "EGYPT", "Abdul Hameed Fagdaul"),
                                                         new EmployeeEntityTwo(15, "MOROCCO", "Jamil Mahmoud"),
                                                         new EmployeeEntityTwo(16, "LIBERIA", "Robert Damus"));
  
       for(EmployeeEntityTwo employee : employees){
           em.persist(employee);            
         }
  }
  </code></pre>
  
  <p>But i get an exception as</p>
  
  <pre><code>Caused by: org.hibernate.AnnotationException: Property of @IdClass not found in entity com.entities.EmployeeEntityTwo: id
  </code></pre>
  
  <p>I am using JPA with Hibernate as persistence provider,</p>
  
  <p>But @IdClass which i have used is of import javax.persistence.IdClass;</p>
  
  <p>so where is am going wrong,</p>