-
[JPA] 시작하기, 기본 설정DEV/JPA 2024. 2. 14. 02:40
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다.
강의 : 인프런 <자바 ORM 표준 JPA 프로그래밍 기본편>
교육자 : 김영한
JPA 시작하기
1. pom.xml에 JPA 하이버네이트, 사용할 데이터베이스 세팅
<dependencies> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.4.2.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.2.224</version> </dependency> </dependencies>
2. /META-INF/persistence.xml JPA 설정파일 생성
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="jakarta.persistence.jdbc.user" value="sa"/> <property name="jakarta.persistence.jdbc.password" value=""/> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <!--<property name="hibernate.hbm2ddl.auto" value="create" />--> </properties> </persistence-unit> </persistence>
* Java 17은 클래스명이 javax 에서 jakarta로 변경되었으니 유의
* JPA의 경우 특정 데이터베이스에 종속되지 않는 장점이 있음
→ hibernate.dialect 속성에 지정
JPA 구동방식
1. JPA 설정파일 조회
2. 엔티티 매니저 팩토리 생성
3. 엔티티 매니저 팩토리에 의해 엔티티 매니저들을 생성
주의사항
* 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체 공유
* 엔티티 매니저는 쓰레드간에 공유하지 않음(사용하고 버리기!)
* JPA의 모든 데이터 변경은 트랜잭션 안에서 실행
'DEV > JPA' 카테고리의 다른 글
[JPA] 다양한 연관 관계 매핑 ( N:1 / 1:N / 1:1 / N:M ) (1) 2024.04.04 [JPA] 연관관계 매핑 기초 (0) 2024.03.29 [JPA] 엔티티 매핑 (0) 2024.03.07 [JPA] 영속성 관리 (0) 2024.02.22 [JPA] 등장 배경, 개념 정리 (2) 2024.02.11