「コンポジット-ID」エラーを返す一対一の関係のキーとして私は、次の2つのエンティティがあります。は、Entity
@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
(これはまだ実装されていません)を実装する必要があります。これらの2つの実装はそのエラーを修正する必要がありますか?明確にするため
編集:EMPLOYEE
とDRAW
:
私は2つのモデル化されたテーブルを持っている
EMPLOYEE
があります:整数emp_id
、プラス他の列の多くを。
DRAW
は、整数emp_id
、整数totalPoints
を有する。
描画テーブルに一定時間ごとにデータが取り込まれてパージされるため、列totalPoint
はテーブルEMPLOYEE
に入れることはできません。エンティティの関係が正しいかどうかはわかりません(draw
のIDとしてエンティティemployee
)。
をこれが機能していない、それは内部メソッドのNPEを作成します。.. – Nimchip
私は私がやっていることは権利を取得-行く – Nimchip
からであるかどうかを確認するために編集しました@ Nimchip:見て[ここ](http://stackoverflow.com/questions/787698)、同様の問題のように見えます。 –