728x90
JPA
기본적으로 사용 하는 methods와 같이 사용을 한다.
Repository interface를 만들고 하단 interface를 extends하여 사용한다.
- Repository<T, ID>
- JPA에서 제공하는 가장 기본적인 인터페이스로, 엔티티의 저장, 조회, 삭제 등의 기본적인 CRUD 기능을 제공
- 하지만 페이징 기능이나 정렬 기능 등이 없습니다.
- CrudRepository<T, ID>
- Repository 인터페이스를 상속하여 CRUD 기능을 제공하는 인터페이스
- save(), findOne(), delete() 등의 기본적인 CRUD 메서드 외에도 findAll(), count(), exists() 등의 메서드를 제공합니다.
- PagingAndSortingRepository<T, ID>
- CrudRepository 인터페이스를 상속하여, 추가적으로 페이징과 정렬 기능을 제공하는 인터페이스
- findAll(Pageable pageable)과 같은 메서드를 통해 페이징과 정렬이 가능합니다.
- JpaRepository<T, ID>
- PagingAndSortingRepository 인터페이스를 상속하여, JPA의 모든 기능을 사용할 수 있는 인터페이스
- saveAndFlush()와 같은 메서드를 통해 즉시 저장이 가능하고, @Query 어노테이션을 사용하여 직접 쿼리를 작성 가능
- Spring Data JPA에서 제공하는 다양한 기능을 사용할 수 있습니다.
// Repository <T,ID>를 사용하면 아래 처럼 사용 가능하다.
// Create, Update
User save(User user);
// Read
// Find By Method는 단순할 경우에만 사용할것
Optional<User> findById(String email);
List<User> findByNameLike(String name);
// Use Specification
List<User> findAll(Specification<User> spec);
// Delete
void delete(User user);
위와 같이 간단 하게 사용 가능하다
각 특성에 맞게 extends하여 사용 하면된다.
728x90
'BackEnd > Spring Boot' 카테고리의 다른 글
JPA 응용 방법 _ Specification_2 (0) | 2023.04.18 |
---|---|
JPA 응용 방법 _ Specification_1 (0) | 2023.04.17 |
Bean Life Cycle (0) | 2023.04.16 |
Redis 설정 (0) | 2023.04.16 |
Show JPA Query Log (0) | 2023.04.16 |