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 |