• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Self-refrence

20.09.26 20:46 작성 조회수 145

0

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

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

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

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

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

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

답변 2

·

답변을 작성해보세요.

1

석민님의 프로필

석민

질문자

2020.09.27

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

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<>();

}