백엔드 api 개발 프로젝트를 진행하면서 jpa를 멘땅에 헤딩으로 공부를 하고 있다.
양방향 매핑 관계에선 @mappedBY가 필수적으로 필요하다
StudyComment
@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class StudyComment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne private Study study; }
study class
@Entity @Getter @NoArgsConstructor(access = PROTECTED) public class Study { @Id @GeneratedValue(strategy = IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "study") private final List<StudyComment> comments = new ArrayList<>(); }
위의 코드를 보면 StudyComment가 연관관계의 주인이 되는것이다
참고 // 데이터베이스 테이블의 다대일, 일대다 관계에서는 항상 다 쪽이 외래 키를 가진다. 다 쪽
인 @ManyToOne은 항상 연관관계의 주인이 되므로 mappedBy를 설정할 수 없다. 따라서
@ManyToOne에는 mappedBy 속성이 없다.