ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.