Spring Boot

https://sundaland.tistory.com/419  [ ▶ Other Methods ] Spring Data JPA는 다양한 방법으로 쿼리를 작성할 수 있는 기능을 제공한다. 그러나 때때로 쿼리가 제공된 기술로는 너무 복잡할 수 있다. 이런 경우에는 다음과 같은 대안들을 고려해볼 수 있다.  [ ▷ 직접 쿼리 작성하기 ] 가장 먼저 고려해야 할 방법은 @Query 어노테이션을 사용하여 직접 쿼리를 작성하는 것이다. 이를 통해 JPQL, HQL, 또는 네이티브 SQL을 사용하여 원하는 대로 쿼리를 구성할 수 있다. public interface UserRepository extends JpaRepository { @Query("SELECT u FROM User u WHERE u.lastname..
https://sundaland.tistory.com/417 [ ▶ Using Sort ] Spring Data JPA에서 정렬(Sort)은 PageRequest를 제공하거나 직접 Sort 객체를 사용하여 수행할 수 있다. 이때, 사용되는 정렬 속성은 도메인 모델에 맞아야 하며, 쿼리 내에서 사용되는 속성이나 별칭과 일치해야 한다. JPQL에서는 이를 상태 필드 경로 표현(state field path expression)이라고 정의한다.  [ ▷ Sort 사용 ]Sort 객체는 쿼리에 전달되어 결과를 정렬하는 데 사용된다. Sort를 사용하여 정렬할 때는 도메인 모델에서 사용되는 속성명을 기반으로 정렬 기준을 설정해야 한다. 잘못된 경로 표현을 사용하면 예외가 발생다.다음은 정렬과 JPQL 쿼리를 사용..
https://sundaland.tistory.com/415 [ ▶ Using JPA Named Queries ] JPA에서 Named Queries는 @NamedQuery 어노테이션을 사용하여 정의할 수 있으며, 코드에서 직접 쿼리를 설정할 수 있는 장점이 있다. Named Query는 쿼리 이름을 통해 호출되므로, 코드의 가독성을 높이고 중복을 줄이는 데 효과적이다.  [ ▷ @Named Query 정의하기 ] Named Query는 주로 엔티티 클래스에 정의되며, JPA 쿼리 언어(JPQL)를 사용하여 작성된다.  ▼ 사용자 엔티티와 Named Query import javax.persistence.Entity;import javax.persistence.GeneratedValue;import ja..
https://sundaland.tistory.com/405  [ ▶ Query Lookup Strategies ][ ▷ CREATE 전략 설정 ] CREATE 전략은 Spring Data JPA에서 리포지토리 메서드 이름을 기반으로 쿼리를 생성하는 방법을 의미한다. 이 전략은 메서드 이름에서 특정 접두사를 제거하고 나머지 부분을 분석하여 데이터베이스에 맞는 쿼리를 자동으로 작성한다. import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.jpa.repository.config.EnableJpaReposit..
https://sundaland.tistory.com/411 [ ▶ Paging, Iterating Large Results, Sorting & Limiting ]이 내용은 Spring Data JPA에서 쿼리 메서드에 Paging, Sorting, Limiting 등의 기능을 적용하는 방법을 설명하고 있다. 구체적으로 Pageable, Sort, Limit와 같은 특정 타입의 파라미터를 사용하여 쿼리 결과를 동적으로 처리하는 방법을 다룬다. [ ▷ 페이징, 정렬, 제한을 적용한 쿼리 메서드 사용 예시 ] ▼ Pageable, Slice, Sort, Limit 등을 활용한 쿼리 메서드 예시Page findByLastname(String lastname, Pageable pageable);Slice fin..
https://sundaland.tistory.com/22 [ ▶ Slice ] Spring Data JPA의 Slice는 페이징 처리에서 효율성을 높이기 위한 대안으로, Page 객체와 비교해 일부 간략화된 정보를 제공하는 페이징 결과 객체이다. Slice는 전체 데이터 수를 계산하지 않고도 페이징을 처리할 수 있어 성능 면에서 이점을 제공한다. 더 자세히 설명하자면, Slice는 현재 페이지의 데이터와 다음 페이지로 이동할 수 있는지 여부만 제공하며, 전체 데이터의 수를 포함하지 않는다는 점이 특징이다.  [ ▷ Slice와 Page의 비교 ] Page와 Slice는 모두 페이징 처리를 위해 사용되지만, 두 클래스는 제공하는 정보가 다르다.△ Page전체 데이터 개수 (getTotalElements(..
https://sundaland.tistory.com/409 [ ▶ Repository Methods Returning Collections or Iterables ]Spring Data JPA는 여러 결과를 리턴하는 쿼리 메서드에서 다양한 Java 컬렉션 타입을 사용할 수 있다. 여기서는 Iterable, List, Set와 같은 표준 Java 컬렉션 타입 외에도, Spring Data의 Streamable이라는 커스텀 Iterable 확장 타입과 Vavr 라이브러리에서 제공하는 컬렉션 타입을 지원한다.[ ▷ Streamable을 쿼리 메서드 리턴 타입으로 사용하기 ] Streamable은 Iterable 또는 기타 컬렉션 타입의 대안으로 사용할 수 있다. Streamable은 non-parallel ..
https://sundaland.tistory.com/27  [ ▶ @RequiredArgsConstructor ][ ▷ 기본 개념: @RequiredArgsConstructor ] @RequiredArgsConstructor는 Lombok이 제공하는 어노테이션으로, 클래스에 있는 final 필드와 @NonNull로 표시된 필드를 위한 생성자를 자동으로 생성해 준다. 해당 필드들은 반드시 초기화되어야 하기 때문에, 생성자를 통해 의존성을 주입받거나 외부에서 값을 설정받는 경우에 유용하다.  △ 자동 생성되는 생성자이 어노테이션이 적용된 클래스에는 다음과 같은 생성자가 자동으로 생성된다.클래스에 있는 모든 final 필드@NonNull로 표시된 필드이러한 필드들이 생성자의 파라미터로 추가되며, 생성자 내에..
GLaDiDos
'Spring Boot' 카테고리의 글 목록 (3 Page)