본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~)/Spring

1일1개 (31) - mappedBy (다시 수정하기)

by poetDeveloper 2024. 9. 10.

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#31. mappedBy

mappedBy는 JPA에서 "양방향 관계"를 설정할 때 사용한다. 두 엔티티 간의 관계를 명시하고, 이 관계의 소유자와 비소유자를 설정할 때 사용된다. 소유자와 비소유자가 무엇일까? 차차 아래 예시를 보며 알아보자 !! 코드로 보면 이해가 쉬울 것이다.

 

 

mappedBy

mappedBy는 JPA에서 사용되는데, 양방향 관계를 설정할 때 사용한다. 어떤 관계의 주인을 설정할 때 사용한다.

  • 주인 : 실제로 외래 키를 가진 쪽을 말함. JPA는 주인쪽에서 외래 키를 관리한다.
  • 비주인 : 외래 키를 가지지 않고, 단지 주인 측의 외래 키를 참조한다
게시글 - 댓글 관계라고 생각하고 보자.

@Entity
public class Post {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    // 하나의 포스트에 여러 개의 댓글이 달릴 수 있음
    @OneToMany(mappedBy = "post") // Comment 엔티티의 'post' 필드와 매핑됨
    private List<Comment> comments;
}


@Entity
public class Comment {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    // 여러 개의 댓글이 하나의 포스트에 속함
    @ManyToOne
    @JoinColumn(name = "post_id") // 데이터베이스에서 포스트 ID로 댓글을 연결
    private Post post;
}

 

OneToMany, ManyToOne은 연관관계를 사용할 때 쓰는 키워드이다.

 

공부하고 다시 수정하기 .... (틀린 내용을 적어놨었음)

 

'1일 1개념정리 (24년 8월~) > Spring' 카테고리의 다른 글

1일1개 (15) - Bean  (0) 2024.08.24
1일1개 (14) - ArgsConstructor  (0) 2024.08.22
1일1개 (12) - @Transactional  (0) 2024.08.20
1일1개 (11) - JDBC 발전 과정  (0) 2024.08.19
1일1개 (10) - JDBC  (0) 2024.08.18