반응형
1. JPA(Java Persistence API)
- 자바 진영의 ORM 기술 표준으로, 인터페이스 모음이다.
- 인터페이스이기에 구현체가 없고 사용하기 위해서는 ORM 프렘임워크를 선택해야 한다.
(Hibernate, OpenJPA) - 자바 진영의 ORM 기술 표준으로, 인터페이스 모음
- JPA는 어플리케이션과 JDBC 사이에서 동작하는데 JPA 내부에서 JDBC API를 이용하여 DB와 통신을 하게 된다.
- JPA 특징
- SQL 중심에서 객체 중심으로 개발하면서 패러다임의 불일치를 해결
- 생상성 & 유지보수에 뛰어남
- DBMS에 종속적이지 않음
2. Spring Data JPA
- JPA를 더욱 편하게 사용하기 위해 만들어진 모듈이다.
- Spring Data JPA는 반복되는 CRUD 문제를 더욱 편리한 방법으로 해결할 수 있게 해준다.
아래의 공통 인터페이스인 JpaRepository를 상속받은 인터페이스를 생성하면 CRUD를 편하게 사용할 수 있다
- Spring Data JPA 인터페이스 및 기능
- findAll() : 해당 엔티티 테이블에 있는 모든 데이터 조회
- save() : 대상 엔티티들 DB에 저장
- saveAll() : Iterable 가능한 객체 저장
- delete() : 데이터베이스에서 대상 엔티티를 삭제
- 이외에도 다양한 기능을 제공
- 검색 조건으로 findBy 뒤에다가 검색할 조건값을 입력
- 이외에도 distinct, orderby 등등을 다양한 기능에 대해 사용 가능
- Spring Data JPA 반환 타입
- 다양한 반환 타입을 지원
- 결과가 한건 이상이면 컬렉션 인터페이스를 사용하고, 단건이면 Optional 이나 T를 사용
- T와 Optional : 결과가 2개이면 에러 발생
- 컬렉션 : 결과가 없는 경우 빈 컬렉션 반환(Null 아님)
반응형
'Backend > Spring' 카테고리의 다른 글
[JPA] N+1 문제 (0) | 2022.02.28 |
---|---|
JPA 즉시로딩(Eager Loading)과 지연로딩(Lazy Loading)? (0) | 2022.02.24 |
JPA 프록시란? (0) | 2022.02.24 |
영속성 컨텍스트란? (0) | 2022.02.22 |
IOC(Inversion of Colntrol) 컨테이너 (0) | 2017.06.27 |