[JPA] 양방향 매핑 mappedBy

Hyunho·2021년 7월 29일
0

mappedBy

  • 관계의 주인을 설정
  • 단방향 매핑이여도 테이블은 연관관계를 갖는다.
  • 양방향은 조회 로직이 추가된것.
  • 양방향 매핑을 할 때 JPA에 주인이 아닌Entity에 mappedBy를 사용
  • 아래 코드에 BOOK Entitiy에 @OneToMany(mappedBy = "book")를 달아주었다.
    • 연관관계의 주인이 아닌쪽에는 수정이 반영되지 않는다.
  @Entity
  @Getter
  @NoArgsConstructor
  public class Book {
      @Id
      @Column(name = "ISBN")
      private String isbn;
  
      @Column(name = "BOOK_NAME")
      private String bookName;
  
      @Column(name = "AUTHOR")
      private String author;
  
      @Column(name = "PUBLISHER")
      private String publisher;
  
      @Column(name = "KDC")
      private String kdc;
  
      @Column(name = "CATEGORYy")
      private String category;
  
      @Column(name = "KEYWORD")
      private String keyword;
  
      @Column(name = "BOOK_IMAGE")
      private String img;
  
      @OneToMany(mappedBy = "book")
      private List<BookReview> bookReviewList = new ArrayList<>();
 
  }
  @Getter
  @Entity
  @NoArgsConstructor
  public class BookReview {
      @Id
      @GeneratedValue
      private long reviewNo;
  
      private int rating;
      private String reviewContents;
      private LocalDateTime createDate;
      private int declaration;
  
      //NORMAl, BLIND
      @Enumerated(EnumType.STRING)
      private ReviewStatus reviewStatus;
  
      @ManyToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "isbn")
      private Book book;
  }
profile
hyunho

0개의 댓글