Spring Boot/Spring Data JPA

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/408 [ ▶ Property Expressions ] Spring Data JPA에서 Property Expressions는 속성 표현식은 이전 예에서 표시된 것처럼 관리되는 엔터티의 직접적인 속성[direct property]만 참조할 수 있다. 쿼리 생성 시 이미 파싱된 속성이 특정 엔티티 클래스의 속성인지 확인한다. 그러나 중첩된 속성을 탐색하여 제약 조건을 정의할 수도 있다.   [ ▷ 직접 속성(Direct Property) ] 직접 속성이라는 용어는 Spring Data JPA에서 쿼리를 생성할 때, 객체의 속성이 직접적으로 참조되는 경우를 의미한다. 쉽게 말해, 특정 클래스의 속성 중에서 해당 클래스의 인스턴스에서 바로 접근할 수 있는 ..
https://sundaland.tistory.com/407 [ ▶ Reserved Method Names ] Reserved Method Names는 Spring Data JPA에서 특정 메서드 이름이 미리 정의된 규칙에 따라 작동한다는 것을 의미한다. 이 경우, 리포지토리 메서드는 일반적으로 엔티티의 속성과 이름을 기반으로 결합되지만, 일부 특별한 메서드는 그렇지 않다. 특히, CrudRepository와 같은 기본 리포지토리에서 상속받은 메서드는 identifier property (프라이머리 키)에 대해 특정 동작을 수행한다. 이러한 메서드는 reserved methods라고 불리며, 기본적으로 identifier property에 맞춰 동작한다.  [ ▷ 예시 도메인 클래스 ]class User..
https://sundaland.tistory.com/406 [ ▶ Query Creation ] Spring Data JPA의 Query Creation 기능은 개발자가 리포지토리에서 엔티티에 대한 쿼리를 생성할 수 있도록 지원하는 강력한 도구이다. 이 기능은 메서드 이름을 기반으로 쿼리를 동적으로 생성하는 방식으로, 복잡한 쿼리를 작성하는 데 필요한 코드를 줄여준다. [ ▷ 메서드 이름을 통한 쿼리 생성 ] ▼ PersonRepository라는 리포지토리 인터페이스에서 메서드 이름을 통해 여러 쿼리를 생성하는 예시interface PersonRepository extends Repository { // 이메일 주소와 성을 기준으로 Person 엔티티 검색 List findByEmailAdd..
https://sundaland.tistory.com/413 [ ▶ Query Lookup Strategies ] JPA 모듈은 두 가지 방식으로 쿼리를 정의할 수 있다. 첫 번째는 쿼리를 문자열로 수동으로 정의하는 방식이고, 두 번째는 메서드 이름을 기반으로 파생된 쿼리를 사용하는 방식이다.  [ ▷ 파생된 쿼리(Derived Queries) ]Spring Data JPA에서는 메서드 이름을 기반으로 자동으로 쿼리를 생성하는 기능을 제공한다. 예를 들어, findByFirstNameStartingWith 같은 메서드 이름을 정의하면 JPA는 자동으로 LIKE 연산자를 사용해 "FirstName"이 특정 문자열로 시작하는 레코드를 검색하는 쿼리를 생성한다. 이런 파생된 쿼리에서 사용할 수 있는 여러 가지..
https://sundaland.tistory.com/404 [ ▶ Defining Query Methods ] Spring Data에서는 리포지토리 프록시를 통해 메서드 이름을 기반으로 데이터 저장소에 맞는 쿼리를 생성하는 두 가지 주요 접근 방식을 제공한다. [ ▷ 메서드 이름에서 쿼리 파생 ]직접적인 메서드 이름 파생: 이 접근 방식에서는 Spring Data가 리포지토리 인터페이스의 메서드 이름을 분석하여 자동으로 쿼리를 생성한다. 리포지토리에서 메서드를 정의할 때, Spring Data는 메서드 이름을 분석하여 실행할 적절한 쿼리를 생성한다. 명명 규칙: 메서드 이름은 공통 작업(find, read, delete 등)과 필터링 기준(속성 이름)으로 구성된 키워드를 사용하여 형성된다. findBy..
https://sundaland.tistory.com/403 [ ▶ Persisting Entities ][ ▷ Saving Entities (엔티티 저장) ] 엔티티를 저장하는 방법은 CrudRepository.save(…) 메서드를 사용하는 것이다. 이 메서드는 내부적으로 JPA의 EntityManager를 사용하여 주어진 엔티티를 저장하거나 병합한다. 만약 엔티티가 아직 영속화되지 않은 상태라면, entityManager.persist(…)를 호출하여 저장하고, 이미 영속화된 엔티티라면 entityManager.merge(…)를 호출하여 병합한다.  [ ▷ Entity State-detection Strategies (엔티티 상태 감지 전략) ]△ Version-Property와 Id-Propert..
GLaDiDos
'Spring Boot/Spring Data JPA' 카테고리의 글 목록 (3 Page)