BE전문가 프로젝트

쇼핑몰 만들기 1. 요구사항 분석과 기본 매핑 본문

JPA

쇼핑몰 만들기 1. 요구사항 분석과 기본 매핑

원호보고서 2022. 10. 9. 12:13

요구사항

  • 회원은 상품을 주문할 수 있다.
  • 주문 시 여러 종류의 상품을 선택할 수 있다.

 

지금은 maven이라 실행시 그대로 컬럼을 저장하지만 Spring boot에서 hibernate를 사용하면 스네이크표기법(order_id)으로 컬럼이 추가된다.

 

public class JpaMain {

    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
        EntityManager em = emf.createEntityManager();

        EntityTransaction tx = em.getTransaction();
        tx.begin();                                     //트랜잭션 시작

        try{
            Order order = em.find(Order.class, 1L);
            Long memberId = order.getMemberId();

            em.find(Member.class, memberId);
            
            tx.commit();
        }catch (Exception e){
            tx.rollback();
        }finally {
            em.close();
        }
        emf.close();
    }
}

위에 보이는 로직은 주문테이블에서 객체를 들고와 아이디를 찾은 후 다시 member를 찾는 로직이다.

이 방법은 객체지향적이기 보다는 데이터 중심 설계라고 볼 수 있다.

 

데이터 중심 설계의 문제점

  • 현재 방식은 객체 설계를 테이블 설계에 맞춘 방식
  • 테이블의 외래키를 객체에 그대로 가져옴
  • 객체 그래프 탐색이 불가능
  • 참조가 없으므로 UML도 잘못됨

'JPA' 카테고리의 다른 글

양방향 연관관계와 연관관계의 주인 1 - 기본  (0) 2022.10.17
연관관계 매핑 기초  (0) 2022.10.09
기본 키 매핑  (0) 2022.10.08
필드와 컬럼 매핑  (0) 2022.10.05
데이터베이스 스키마 자동 생성  (0) 2022.10.03
Comments