我有兩個實體,我想在其中創建一個關係,以便共享主鍵。而當我們提交一個實體時,另一個實體也應該使用爲第一個實體生成的相同主鍵進行提交。此類的ID必須在調用save()時手動分配,當實體之間有主鍵關係時
我的第一個實體是用戶
@Entity
@Table(name = "ENDUSER")
public class User extends LongIdBase implements IActivatable, IUser {
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, targetEntity = UserLoginRecord.class)
@PrimaryKeyJoinColumn(name = "id")
private UserLoginRecord userLoginRecord;
我的第二個實體是UserLoginrecord
@Entity
@Table(name = "ENDUSER_TEMP")
public class UserLoginRecord {
@Id
@Column(name = "id")
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "name")
private String name;
我想,當我堅持用戶,爲UserLoginRecord新行也應與同一個主爲創建用戶。
但試圖堅持,我得到下面的這個錯誤。
ids for this class must be manually assigned before calling save():
請參閱鏈接的類似問題 - http://stackoverflow.com/questions/787698/jpa-hibernate-one-to-one-relationship – Atul