JPA정의
JPA
JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 (JPA 인테페이스를 구현한 대표적인 오픈소스는 Hibernate)
- JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다.
- JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 매핑해준다.
- JPA는 내부적으로 JDBC API를 활용한다. 하지만 개발자가 직접 JDBC API를 활용하면 SQL의존성 등 효율성이 떨어진다.
-
JPA는 애플리케이션과 JDBC사이에서 동작한다.
-
개발자가 JPA를 사용하면, JPA내부에서 JDBC API를 사용하여 SQL을 호출하여 DB와 통신한다. 즉 개발자가 직접 JDBC API를 사용하는것이 아니다.
예를 들어 MemberDAO에서 객체를 저장할 때
-
개발자는 JPA에서 Member객체를 넘긴다.
-
JPA는 Member 엔티티를 분석하고, INSERT SQL을 생성한 후 JDBC API를 사용하여 SQL을 DB에 날린다.
Member 객체를 조회하고 싶을 때
-
개발자는 Member의 pk값을 JPA에 넘긴다.
-
JPA는 엔티티의 매핑 정보를 바탕으로 적절한 SELECT 문을 생성한고 JDBC API를 사용하여 SQL 문을 DB에 날린 후 DB로부터 받아온 결과를 객체에 매핑한다.
즉 쿼리를 JPA가 만들어 주기 때문에 Object와 RDB간의 패러다임 불일치를 해결 할 수 있다.