6
私のIDクラスを永続化するために失敗し、には、以下のコンポジット主キーを持つエンティティを保存するための@IdClassを使用して、以下のよう
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)
&& (this.getCountry().equals(myId.getCountry()))
&& (this.id == myId.getId())){
flag = true;
}
return flag;
}
// rest of the code with getters only
}
はこれが私のテーブル
ある@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
}
を使用して、私のエンティティであり、
create table TBL_EMPLOYEE_FOUR(
ID integer,
COUNTRY varchar(50),
NAME varchar(50),
constraint PK_EMP_00239 primary key(ID,COUNTRY)
)
これは私が実行しようとしているものです
private static void idClassStore(EntityManager em) throws Exception{
List<EmployeeEntityTwo> 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);
}
}
しかし、私は私が使用している私は、持続性プロバイダとしてHibernateでJPAを使用しています
Caused by: org.hibernate.AnnotationException: Property of @IdClass not found in entity com.entities.EmployeeEntityTwo: id
として例外、
しかし、@IdClassは輸入javax.persistence.IdClassであり得ます。
ので、間違ったつもりですが、私は解決策を発見した
答えの横にあるチェックマークを押して、この質問に答えていることが明らかです。 – sharakan
私はできません、私は2日後に私自身の質問に答えることができると言います –
私は同じエラーがあります。エラーメッセージが実際の問題と一致しません。非常に曖昧です。 –