하이버네이트를 사용하면서 제일 머리아픈게 @OneToOne인 것 같다.
완벽 정리를 하고 싶으나 능력이 미천하여 샘플만 하나 남겨본다.
아래와 같은 방법으로 해결이 된 것 같은데, 추후 사용하다 다시 업데이트 해야 할 것 같다.
public class Parent implements Serializable{
@Id
@GeneratedValue
private int id
@OneToOne(mappedBy="parent", targetEntity=Children.class, fetch=FetchType.LAZY, orphanRemoval=true)
@org.hibernate.annotations.Cascade(org.hibernate.annotations.CascadeType.ALL)
private Children children;
}
public class Children implements Serializable{
@OneToOne(optional=false, targetEntity=Parent.class, fetch=FetchType.LAZY)
@JoinColumns(value={ @JoinColumn(name="ParentId", referencedColumnName="ParentId", nullable=false) }, foreignKey=@ForeignKey(name="FKtpo_policy787323"))
private Parent parent;
@Column(name = "ParentId", columnDefinition = "BINARY(16)", nullable = false, insertable = false, updatable = false)
@Id
private byte[] parentId;
}