인프런 커뮤니티 질문&답변

석민님의 프로필 이미지
석민

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리

Self-refrence

작성

·

205

0

안녕하세요! 수업 정말 잘 듣고 있씁니다.

연관관계에 대해서 수업을 들었는데, 

jpa에서 one to one 관계의 self-refernce 의 관계에 있는

한개의 엔티티에서 연관관계를 만드는게 가능한가요? 

예) User 의 엔티티에 user는 one to one으로 한명의 User의 친구를 가질 수 있다! 

라고 가정을 했을 때 연관관계 매핑이 가능한지, 된다면 참조할 만한 자료가 있을지, 안된다면 안되는 이유에 대해서 알고싶습니다. 감사합니다. ㅎㅎ

답변 2

1

석민님의 프로필 이미지
석민
질문자

주말인데 이렇게 직접 답을 달아주셔서 너무 감사합니다. ! 

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. seokmin0277님^^

가능합니다.

예를 들면 다음과 같이 작성하시면 됩니다.

User {

  Long id;

  @OneToOne

  @JoinColumn(name="target_user")

  User user;

}

활용 1편에서는 카테고리가 self-refernce 하는 설계를 보여드립니다. 다음 코드를 참고해주세요^^

@Entity

@Getter @Setter

public class Category {



    @Id @GeneratedValue

    @Column(name = "category_id")

    private Long id;



    private String name;



    @ManyToOne(fetch = FetchType.LAZY)

    @JoinColumn(name = "parent_id")

    private Category parent;



    @OneToMany(mappedBy = "parent")

    private List<Category> child = new ArrayList<>();

}
석민님의 프로필 이미지
석민

작성한 질문수

질문하기