본문 바로가기

Study/JPA

[JPA] JPA 기본과 매핑

JPA 기본과 매핑

객체 매핑

  • @Entity : JPA가 관리할 객체
  • @ID : DB PK와 매핑할 필드

persistence.xml

  • JPA설정 파일
  • /META-INF 폴더 안에 위치
  • javax.persistence로 시작 : JPA 표준 속성
  • hibernate로 시작 : 하이버네이트 전용 속성

jdbc드라이버나 DB속성등을 설정.


DB 방언 (Dialect) -> hibernate의 속성중 하나
  • JPA는 특정 데이터베이스에 종속적이지 않은 기술
  • 각각의 데이터베이스가 제공하는 SQL 문법과 함수가 조금씩 다름.

-> 가변 문자 : MySQL은 VARCHAR, Oracle은 VARCHAR2

-> 문자열을 자르는 함수 : SQL표준은 SUBSTRING(), Oracle은 SUBSTR()

-> 페이징 : MySQL은 LIMIT, Oracle은 ROWNUM

  • 방언이란 SQL 표준을 지키지 않거나 특정 데이터베이스만의 고유한 기능

<!-- persistence.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.2">
    <persistence-unit name="hello">
        <properties>

            <!-- 필수 속성 -->
            <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
            <property name="javax.persistence.jdbc.user" value="sa"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="javax.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"/>


        </properties>
    </persistence-unit>

</persistence>

JPA 사용 시 주의

  • 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유
  • 엔티티 매니저는 쓰레드간에 공유하면 안된다. (사용하고 버려야 한다.)
  • JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다

참고 자료 : TAcademy youtube

'Study > JPA' 카테고리의 다른 글

[JPA] JPA 내부 구조  (0) 2022.01.12
[JPA] 양방향 매핑  (0) 2022.01.12
[JPA] 연관관계 매핑  (0) 2022.01.11
[JPA] JPA 필드와 컬럼 매핑  (0) 2022.01.10
[JPA] JPA를 사용하는 이유  (0) 2022.01.10