728x90
반응형
데이터베이스 방언
JPA는 특정 베이스에 종속하지 않는다.
각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다르다.
- 가변 문자
- MySQL : VARCHAR
- Oracle : VARCHAR2
- 문자열 자르는 함수
- SQL 표준 : SUBSTRING( )
- Oracle : SUBSTR( )
- 페이징
- MySQL : LIMIT
- Oracle : ROWNUM
방언은 SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능이다.
각 데이터베이스 방언을 사용하기 위해 hibernate.dialect 속성에 지정한다.
- H2 : org.hibernate.dialect.H2Dialect
- Oracle 10g : org.hibernate.diaslect.Oracle10gDialect
- MySQL : org.hibernate.dialect.MySQL5InnoDBDialect
하이버네이트는 40가지 이상의 데이터베이스 방언을 지원한다.
JPA 구동방식
Persistence가 자바프로젝트의 resource 폴더 하위에 있는 META-INF/persistence.xml에서 1) 설정정보를 조회한다.
EntityMangerFactory를 통해 EntityManager를 생성하여 관리한다.
객체와 테이블을 생성하고 매핑 예시
- @Entity : JPA가 관리할 객체
- @Id : 데이터베이스가 PK와 매핑
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Member{
@Id
private Long id;
private String name;
}
주의할 점
- 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유해야 한다.
- 엔티티 매니저는 쓰레드간에 공유하지 않고 사용 후 자원을 반납해야한다.
728x90
반응형
'JPA' 카테고리의 다른 글
[JPA] 연관관계 매핑 - 객체지향 모델링 단방향 매핑 (0) | 2023.04.04 |
---|---|
[JPA] 엔티티 매핑 - 기본 키 매핑 (0) | 2023.02.26 |
[JPA] 엔티티 매핑 - 객체와 테이블 매핑, 필드와 컬럼 매핑 (0) | 2023.02.26 |
[JPA] 변경감지와 플러시 (0) | 2023.02.24 |
[JPA] JPA 핵심 - 영속성 컨테이너 (0) | 2023.02.24 |