JPA

Java Persistence API 

 

ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음으로 이루어져 있고

인터페이스여서 다양한 구현체 중 Hibernate 를 대중적으로 사용

 

ORM(Object-Relational Mapping) 란?

객체와 관련된 DB의 테이블을 매핑한다는 뜻

 

어떻게 매핑? @Entity 어노테이션을 써서 jpa가 관리하도록 함

 

 

 

JPA 동작과정

어플리케이션과 JDBC 사이에서 동작

 

 

 

장점

JDBC 로 해결이 안되는 점을 JPA라는 기술을 사용하여 sql쿼리를 자동으로 처리해주고 

무엇보다 SQL과 데이터 중심에서 객체 중심으로 고민할 수 있기에 개발생산성을 높여준다.

 

DB에 따라 알맞게 쿼리문을 자동 작성해주기 때문에 특정 데이터베이스에 종속되지 않아 유지보수에 강점을 가진다.

 

 

 

단점

정확한 쿼리문이 아닌 메서드를 사용하기 때문에 복잡한 쿼리를 JPA만으로는 사용하기에는 해결하는데 문제가 있으며

이를 보안하고자 nativeQuery를 사용하면 JPA의 장점인 특정 데이터베이스에 종속되지 않는 강점이 사라지기에

.JPQL 을 사용하는데 JPQL은 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리.

SQL을 추상화하여  특정 데이터베이스에 종속되지 않도록 한다.

 

 

 

 

 

스프링 데이터 JPA

인터페이스를 통한 기본 CRUD기능 모두 제공하여 단순하고 반복되는 개발코드를 확연히 줄어든다.

메서드 이름만으로 쿼리생성 가능. 예를들어 조회기능은 findByName() , findByEmail() 메서드 이름이 있다.

실무에서는 필수적으로 사용

※ 스프링 JPA 는 JPA를 편리하게 사용하도록 도와주는 도구

 

extends JpaRepository<>

인터페이스는 인터페이스를 받을때 extends를 쓴다

 

 

 

 

JPA 메서드 이름만으로 지원되는 키워드

 

반응형
LIST

+ Recent posts