본문 바로가기

전체 글223

JAVA ORM - Spring Data JPA(사용자 정의 리포지토리, Auditing의 두가지 방법) 사용자 정의 리포지토리Spring data Jpa는 사용자가 인터페이스만 정의하고 구현체는 스프링이 자동생성해줘서 편하지만, 사용자가 직접 정의해야 할 상황도 발생한다. JPA, 스프링 JDBC, MyBatis...등등 public interface CustomUserRepository { List findUsersByCustomQuery(String customParameter);}1. 이런 인터페이스를 하나 만든다. 2. 그다음 방금 만든 인터페이스를 구현할 클래스를 만들어야 하는데, 이름은 그 인터페이스이름 뒤에 'Impl'을 붙혀줘야 한다.@RequiredArgsConstructorpublic class CustomUserRepositoryImpl implements CustomUserRep.. 2024. 8. 25.
JAVA ORM - Spring Data JPA(페이징, 슬라이스, countQuery) 페이징(Paging)페이징은 데이터를 페이지단위로 나눠 가져오는 기술. Spring data Jpa에서는 'pageable'인터페이스와 'Page' 객체를 사용해 페이징을 처리한다.public interface UserRepository extends JpaRepository { Page findByLastName(String lastName, Pageable pageable);}반환타입은 Page 객체, 인자로는 Pageable 객체를 받아야한다.Pageable pageable = PageRequest.of(0, 10, Sort.by("firstName").ascending());Page page = userRepository.findByLastName("Smith", pageable);List .. 2024. 8. 23.
JAVA ORM - Spring Data JPA(JpaRepository의 주요 메서드, 쿼리 메서드) 우리가 spring data jpa를 사용함으로써 JpaRepository의 메서드들을 이용해 쉽게쉽게 사용할 수 있다고 했다.그 메서드들에 대해 알아보자. public interface JpaRepository extends ListCrudRepository, ListPagingAndSortingRepository, QueryByExampleExecutor { JpaRepository는 ListCrudRepository, ListPagingAndSortingRepository, QueryByExampleExecutor를 상속받는다.public interface ListCrudRepository extends CrudRepositorypublic interface ListPagingAndSortingRe.. 2024. 8. 21.
JAVA ORM - Spring Data JPA(JPA와의 차이점) ㅇ JPA와 Spring Data Jpa의 차이JPA (Java Persistence API)JPA는 자바 표준 ORM API이다. 자바의 객체와 관계형 데이터베이스 간의 매핑을 정의하고 관리하기 위한 표준.데이터베이스와의 매핑을 위해 엔티티(Entity) 클래스를 정의하고, 이를 통해 SQL 쿼리를 추상화하여 데이터베이스 조작을 수행한다.JPA는 자바 EE의 일부로, 특정 구현체에 의존하지 않는 범용 인터페이스를 제공합니다. 따라서 구현체를 교체하더라도 코드의 큰 변경 없이 사용할 수 있다.Spring Data JPASpring Data JPA는 JPA를 더 쉽게 사용할 수 있도록 도와주는 스프링 프레임워크의 하위 프로젝트다. Spring Data JPA는 JPA를 기반으로 하고, JPA의 기능을 확장.. 2024. 8. 20.