on
ORM-JPA
ORM-JPA
JPA란?
Java Persistence API의 약자로 자바 진영의 ORM 기술 표준이다.
그렇다면 ORM은 무엇일까??
- Object-relational mapping(객체 관계 매핑)
-관계형 데이터베이스는 관계형 데이터베이스대로 설계
-ORM 프레임워크가 중간에서 매핑
JPA는 애플리케이션과 JDBC 사이에서 동작한다.
먼저 maven으로 JPA persistence.xml을 다음과 같이 설정한다.
이 옵션에서 살펴볼 것은 하이버네이트는 다양한 데이터베이스의 언어를 지원한다. 따라서 hibernate.dialect의 value의 데이터베이스를 바꾸어주면 알아서 바뀐 데이터 베이스의 언어로 매핑된다.
JPA 구동 방식
JPA에서 Persistence는 META-INF/persistence.xml을 참조하여 설정 정보를 조회한 후, EntityManagerFactory를 생성하고,
EntityManagerFactory가 EntityManager를 생성하는 방식이다.
객체와 테이블을 생성하고 매핑하기
먼저 h2데이터베이스에서 아래와 같이 테이블을 생성하였다.
create table Member (
);
id bigint not null,
name varchar(255),
primary key (id)
);
h2 데이터베이스
그리고 아래와 같이 Member클래스에 @Entity, Long id에 @ID어노테이션을 붙여 데이터베이스의 PK와 매핑하였다.
Member 객체 생성
@Entity : JPA가 관리할 객체이다.
@ID : 데이터베이스 PK와 매핑
주의 사항
EntityManagerFactory는 아래 코드와 같이 위에서 설정했던 persistence.xml파일에서 를 참조하여 하나만 생성해서 애플리케이션 전체에서 공유한다.
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager는 스레드 간에 공유를 하면 안 된다. 즉 사용하고 버려야 한다는 것이다.
JPA의 모든 데이터 변경은 트랜잭션 안에서 실행된다.
출처 : https://www.inflearn.com/course/ORM-JPA-Basic#
공유하기 글 요소 저작자표시
from http://dobi852.tistory.com/21 by ccl(A) rewrite - 2021-10-05 00:27:36