하이버네이트를 사용하면서 제일 머리아픈게 @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;

   

}

 


Posted by motolies
,