영속성 어댑터 구현하기
영속성 어댑터의 책임과 인터페이스 분리 원칙에 따라 포트를 좁게 나누는 방법을 정리하고, 스프링 데이터 JPA 예제와 트랜잭션 경계 설정 방식을 설명합니다.
영속성 어댑터의 책임과 인터페이스 분리 원칙에 따라 포트를 좁게 나누는 방법을 정리하고, 스프링 데이터 JPA 예제와 트랜잭션 경계 설정 방식을 설명합니다.
도메인 주도 개발 시작하기 5장을 정리하며, 스펙을 이용한 동적 검색, 정렬·페이징 처리, @Subselect를 이용한 조회 전용 모델 구현 방법을 다룹니다.
JPA의 save와 saveAll을 각각 10,000건씩 테스트하여 실행 시간을 비교하고, saveAll이 더 빠른 이유를 프록시 기반 @Transactional 동작 원리로 설명합니다.
스프링 데이터 JPA 리포지토리에 Querydsl을 결합하는 사용자 정의 리포지토리 패턴과, 카운트 쿼리를 최적화한 페이징 처리 방법을 정리합니다.
스프링 데이터 JPA 실습 프로젝트의 Gradle 설정, 라이브러리 구성, H2 데이터베이스 연동과 기본 동작 확인 과정을 정리합니다.
실습에 사용할 Member, Team 엔티티와 양방향 연관관계를 정의하고, 순수 JPA로 저장·조회 동작을 확인합니다.
순수 JPA로 기본 CRUD 리포지토리를 만들어본 뒤, 스프링 데이터 JPA의 공통 인터페이스 JpaRepository로 대체하는 과정을 정리합니다.
메소드 이름으로 쿼리를 생성하는 방법부터 @Query, 파라미터 바인딩, 페이징과 정렬, 벌크 연산, @EntityGraph까지 쿼리 메소드 기능을 정리합니다.
사용자 정의 리포지토리 구현, Auditing, 도메인 클래스 컨버터, 웹 페이징·정렬 등 스프링 데이터 JPA의 확장 기능을 정리합니다.
스프링 데이터 JPA 공통 인터페이스 구현체 SimpleJpaRepository의 동작과 save() 메서드의 신규 엔티티 판단 로직을 정리합니다.
JpaRepository를 상속하는 인터페이스만으로 리포지토리 구현체를 자동 생성하는 스프링 데이터 JPA 사용법을 정리합니다.