BE전문가 프로젝트
쇼핑몰 만들기 1. 요구사항 분석과 기본 매핑 본문
요구사항
- 회원은 상품을 주문할 수 있다.
- 주문 시 여러 종류의 상품을 선택할 수 있다.
지금은 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