본문 바로가기
Data Base/JPA

[JPA] : 연관관계 매핑 시작하기

by 오주현 2022. 4. 9.
반응형
//     @Column(name = "MEMBER_ID")
//     private Long memberId;

     @ManyToOne
     @JoinColumn(name = "MEMBER_ID")
     private Member member;
  • 주석 부분은 이제 사용하지 않는다.
  • 다대일을 설정해 준다.
  • MEMBER_ID에 조인을 걸어준다.
  • 만약, 양방향 매핑을 하고 싶다면 member에서 매핑을 해주면 된다. 일단 지금은 하지 않는다.
    • 가능하면 단방향 매핑이 좋다.
    • 객체 입장에서 양방향은 양쪽 다 신경을 써야해서 별로 좋지 않다.
    • 개발하다 필요할 때 양방향을 넣어준다.
      • 실전에서 JPQL을 많이 쓰는데 이떄 양방향 연관관계가 필요하긴 하다.
//    @Column(name = "ORDER_ID")
//    private Long orderId;

    @ManyToOne
    @JoinColumn(name = "ORDER_ID")
    private Order order;

//    @Column(name = "ITEM_ID")
//    private Long itemId;

    @ManyToOne
    @JoinColumn(name = "ITEM_ID")
    private Item item;
  • OrderItem도 마찬가지다.
  • 다대일 설정을 해주고
  • 조인을 걸어주면
  • 따로 컬럼을 사용할 필요가 없어진다.
public void addOrderItem(OrderItem orderItem) {
          orderItems.add(orderItem);
          orderItem.setOrder(this);
     }
  • 연관관계 편의 메소드를 생성해 준다.
try {
        Order order = new Order();
        order.addOrderItem(new OrderItem());

        tx.commit();
    } catch (Exception e) {
        tx.rollback();
    }finally {
        em.close();
    }
    emf.close();
  • 연관관계 편의 메소드를 통해 양방향 연관관계 매핑이 된 부분을 사용하면 된다.

자바 ORM 표준 JPA 프로그래밍 - 기본편을 참고하여 공부하였습니다.

반응형

댓글