** 이전게시글 참고:
2021.08.20 - [Programming/JPA] - JPA로 CRUD 구현하기_(1)프로젝트 생성
1. Member 객체 매핑
JPA 사용을 위해서는 다음과 같이 자바 클래스와 회원 테이블을 매핑해야한다.
[vo/Member.java]
package vo;
// JPA annotation을 사용하기 위한 라이브러리
import javax.persistence.*;
// @Entity: DB Table과 매핑될 클래스임
// @Table: 매핑할 Table 정보
// @Id: 테이블의 기본키와 매핑할 필드
// @Column: 필드와 컬럼을 매핑
@Entity
@Table (name="MEMBER")
public class Member {
@Id
@Column(name = "ID")
private String id;
@Column(name = "NAME")
private String username;
// table의 컬럼명과 동일할 때는 매핑정보 생략가능
private Integer age;
// 생성자와 Getter, Setter 부분은 생략한다
// ...
}
2. 엔티티 매니저 생성
JPA를 이용한 데이터베이스 등록 / 수정 / 삭제 / 조회 등 대부분의 기능들은 엔티티 매니저에서 생성된다. 즉, 엔티티 매니저는 엔티티를 저장하는 가상의 데이터베이스와 같은 역할을 한다. 엔티티 매니저는 엔티티 매니저 팩토리에서 생성되는데, 이 팩토리는 데이터베이스 하나의 웹 어플리케이션에서 단 1개만 생성되어 공유하며, 필요시마다 엔티티 매니저를 만든다.
[infra/utils/JpaUtil.java]
package infra.utils;
import javax.persistence.*;
public class JpaUtil {
// persistence.xml 에서 설정한 영속성 유닛 name
private static final String PERSISTENCE_UNIT_NAME = "jpa-crud";
private static EntityManagerFactory emf;
// 엔티티 매니저 팩토리 (싱글톤)
public static EntityManagerFactory getEmf() {
if(emf == null) {
emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
}
return emf;
}
}
실습에서는 편의를 위해 엔티티 매니저를 관리하는 Util class를 생성하였고, 싱글톤으로 EntityManagerFactory를 관리할 수 있도록 구현하였다.
자 이제 JPA를 사용하기 위한 준비가 거의 끝났다.
다음 게시글에서는 비즈니스 로직을 수행하는 service부분과 CRUD를 구현해보자.
[참고서적] 자바 ORM 표준 JPA 프로그래밍, 김영한 저자
[참고서적] DDD START! 도메인 주도설계 구현과 핵심 개념 익히기, 최범균 저자
[참고] https://www.javaguides.net/2018/12/jpa-crud-example.html
'Programming > JPA' 카테고리의 다른 글
SQL Mapper와 ORM 차이 (0) | 2021.08.22 |
---|---|
JPA로 CRUD 구현하기_(4)비즈니스 로직 수행 (0) | 2021.08.20 |
JPA로 CRUD 구현하기_(3)CRUD 구현 (0) | 2021.08.20 |
JPA로 CRUD 구현하기_(1)프로젝트 생성 (0) | 2021.08.20 |