내가 가지고있는 다음과 같은 두 기관 :법인 반환 일대일 관계에 대한 키와 "복합-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 관계입니다. 내가 테스트 갈 때, 나는 다음과 같은 오류가 발생합니다 :
왜 Draw
의 employee
키가 복합 ID로 해석됩니다
? 또한이 오류를 어떻게 수정합니까? I have read 참조 된 엔티티는 직렬화 가능해야하지만 메소드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
equals
과
hashCode
(아직 구현하지 않았 음)을 구현해야합니다. 이 두 구현은 그 오류를 수정해야합니까? 선명도
편집 :
나는 두 가지 모델로 테이블이 있습니다 EMPLOYEE
및 DRAW
:
EMPLOYEE
가있다 : 정수 emp_id
, 플러스 다른 열을 많이.
DRAW
: 정수 emp_id
, 정수 totalPoints
.
그리기 테이블은 특정 시간마다 채워지고 제거되므로 열 totalPoint
은 테이블 EMPLOYEE
에 포함될 수 없습니다. 엔티티 관계가 올바른지 확신 할 수 없습니다 (예 : draw
의 ID로 엔티티 employee
).
, 그것은 내부 방법에 NPE를 생성합니다 .. – Nimchip
내가 뭘 내가 뭘하면 바로 – Nimchip
를 얻을 - 이동에서 있는지 편집 @ 님 칩 (Nimchip) : 비슷한 문제인 것처럼 보입니다 [http://skackoverflow.com/questions/787698]. –