자바 진영의 ORM 기술 표준
JPA는 인터페이스의 모음이며, 하이버네이트는 JPA의 구현체 중 하나이다.
객체와 관계형 데이터베이스를 각각 설계한 후 ORM 프레임워크가 중간에서 매핑해주는 역할을 한다.
각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다른데,이 때 SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능을 데이터베이스 방언이라고 한다. JPA는 특정 데이터베이스에 종속되지 않으며, 지정한 데이터베이스에 맞게 SQL문을 생성한다.
pom.xml
에 JPA 하이버네이트 라이브러리 추가/META-INF/persistence.xml
생성 -> JPA 설정 파일EntityManagerFactory
는 하나만 생성하여 애플리케이션 전체에서 공유EntityManager
는 쓰레드 간에 공유X (사용하고 버린다.)필요한 데이터만 DB에서 불러오기 위해서는 결국 검색 조건이 포함된 SQL이 필요하다. JPA는 SQL을 추상화한 JPQL이라는 객체지향 쿼리 언어를 제공한다.