0

내가 가지고있는 다음과 같은 두 기관 :법인 반환 일대일 관계에 대한 키와 "복합-ID"오류

@Entity(name = "Employee") 
    @Table(name = "EMPLOYEE") 
    public class Employee implements Serializable { 
     @Id 
     @Column(name = "EMP_ID", insertable = true, updatable = false, nullable = false) 
     private int id; 

@Entity(name = "Draw") 
@Table(name = "DRAW") 

public class Draw extends AuditableEntity { 
    @Id 
    @OneToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE}) 
    @JoinColumn(name = "EMP_ID", referencedColumnName = "EMP_ID") 
    @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, 
     org.hibernate.annotations.CascadeType.MERGE}) 
    private Employee employee = null; 

은 그냥 그 그들이 그것을 원하는 방법 가정 해 봅시다 모델. 이것은 지정한 OneToOne 관계입니다. 내가 테스트 갈 때, 나는 다음과 같은 오류가 발생합니다 :

Drawemployee 키가 복합 ID로 해석됩니다

nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [META-INF/spring/datasource-context.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: composite-id class must implement Serializable: com.myprojects.tet.data.entity.Draw

? 또한이 오류를 어떻게 수정합니까? I have read 참조 된 엔티티는 직렬화 가능해야하지만 메소드 equalshashCode (아직 구현하지 않았 음)을 구현해야합니다. 이 두 구현은 그 오류를 수정해야합니까? 선명도

편집 :

나는 두 가지 모델로 테이블이 있습니다 EMPLOYEEDRAW :

EMPLOYEE가있다 : 정수 emp_id, 플러스 다른 열을 많이.

DRAW : 정수 emp_id, 정수 totalPoints.

그리기 테이블은 특정 시간마다 채워지고 제거되므로 열 totalPoint은 테이블 EMPLOYEE에 포함될 수 없습니다. 엔티티 관계가 올바른지 확신 할 수 없습니다 (예 : draw의 ID로 엔티티 employee).

답변

2

@PrimaryKeyJoinColumn@JoinColumn 교체 :

이 작동하지 않습니다
@Id 
@Column(name = "EMP_ID") 
private int id; 

@OneToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE}) 
@PrimaryKeyJoinColumn(name = "EMP_ID", referencedColumnName = "EMP_ID") 
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.MERGE}) 
private Employee employee; 
+1

, 그것은 내부 방법에 NPE를 생성합니다 .. – Nimchip

+0

내가 뭘 내가 뭘하면 바로 – Nimchip

+1

를 얻을 - 이동에서 있는지 편집 @ 님 칩 (Nimchip) : 비슷한 문제인 것처럼 보입니다 [http://skackoverflow.com/questions/787698]. –