목록전체 글 (431)
mojo's Blog
단방향 연관관계 ※ 목표 객체와 테이블 연관관계의 차이를 이해해야 한다. 객체의 참조와 테이블의 외래 키를 매핑해야 한다. 용어 이해 - 방향(Direction) : 단방향, 양방향 - 다중성(Multiplicity) : 다대일, 일대다, 일대일, 다대다 이해 - 연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리 주인이 필요 ※ 객체를 테이블에 맞추어 모델링 예를 들어서 멤버와 팀이 다대일 관계일 때, 테이블 연관관계는 다음과 같다. 위 구조를 그대로 Member, Team 클래스를 생성한다면 다음과 같다. @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(na..
객체와 테이블 매핑 - 객체와 테이블 매핑 : @Entity, @Table - 필드와 칼럼 매핑 : @Column - 기본 키 매핑 : @Id - 연관관계 매핑 : @ManyToOnd, @JoinColumn ※ @Entity @Entity 가 붙은 클래스는 JPA 가 관리하며 엔티티라고 부른다. JPA 를 사용해서 테이블과 매핑할 클래스는 @Entity 를 꼭 붙여준다. 주의할 점 - 기본 생성자가 필수다. (parameter 가 없는 public 또는 protected 생성자) - final 클래스, enum, interface, inner 클래스는 사용하면 안된다. - 저장할 필드에 final 을 사용하면 안된다. @Entity 의 name 속성 - JPA 에서 사용할 엔티티 이름을 지정한다. - 기..
※ 영속성 컨텍스트 1 JPA 에서 가장 중요한 2 가지 ① 객체와 관계형 데이터베이스 매핑(Object Relational Mapping) ② 영속성 컨텍스트 영속성 컨텍스트란 ? - JPA 를 이해하는데 가장 중요한 용어이다. - 엔티티를 영구 저장하는 환경이라는 뜻이다. - EntityManager.persist(entity); - 영속성 컨텍스트는 논리적인 개념이다. - 눈에 보이지 않는다. - 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. J2SE 환경에서 엔티티 매니저와 영속성 컨텍스트가 1:1 이다. J2EE, 스프링 프레임워크 같은 컨테이너 환경에서 엔티티 매니저와 영속성 컨텍스가 N:1 이다. 엔티티의 생명주기는? - 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계 ..
※ 요구사항 분석 기능 목록 - 회원 기능 회원 등록 회원 조회 - 상품 기능 상품 등록 상품 수정 상품 조회 - 주문 기능 상품 주문 주문 내역 조회 주문 취소 - 기타 요구사항 상품은 제고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 상품 주문시 배송 정보를 입력할 수 있다. ※ 도메인 모델과 테이블 설계 1. 회원은 여러 상품을 주문할 수 있다. 2. 한 번 주문시 여러 상품을 선택할 수 있으므로 주문과 상품은 다대다 관계이다. 다대다 관계는 RDB, 엔티티에서 거의 사용하지 않으므로, 주문상품이라는 엔티티를 추가해서 다대다 관계를 일대다, 다대일 관계로 설정하였다. 3. 상품은 도서, 음반, 영화로 구분되며 상품이라는 공통 속성을 사용하므로 상속..
새로운 프로젝트를 만들어본다. 위와 같이 설정하였다. 그리고 pom.xml 으로 와서 다음과 같이 작성하였다. 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 11 11 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 H2 데이터베이스의 버젼은 1.4.199 으로 설치하였다. dependency 에서 version 을 동일하게 설정해야 한다. ※ JPA 설정하기 - persistence.xml JPA 설정 파일을 /META-INF/persistence.xml 에 위치시켜야 한다. 여기서 필수 속성의 user, password, url 을 잘 설정해야 한다. h2 database 에서 설정된 JDBC ..
※ JPA - Java Persistence API - 자바 진영의 ORM 기술 표준이다. ※ ORM - Object-relational mapping (객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 ※ JPA는 표준 명세 - JPA 는 인터페이스의 모음 - JPA 2.1 표준 명세를 구현한 3가지 구현체 - 하이버네이트, EclipseLink, DataNucleus ※ JPA를 사용하는 이유 SQL 중심적인 개발에서 객체 중심으로 개발 생산성 유지보수 패러다임의 불일치 해결 성능 데이터 접근 추상화와 벤더 독립성 표준 ① 생산성 (JPA 와 CRUD) - 저장 : jpa.persist(member) - 조회 : Me..