queryDSL 6

Spring Data JPA와 Querydsl을 활용한 페이징 처리 및 성능 최적화

📌 목차 1. 사용자 정의 리포지토리에서 페이징 메서드 선언 2. fetchResults()를 이용한 단순 페이징 방식 3. content와 count 쿼리 분리 방식 4. PageableExecutionUtils를 이용한 고급 최적화 5. 정렬 처리: Sort → OrderSpecifier 변환 6. 실제 컨트롤러에서의 적용 7. 요약 정리 ">📌 목차1. 사용자 정의 리포지토리에서 페이징 메서드 선언 2. fetchResults()를 이용한 단순 페이징 방식 3. content와 count 쿼리 분리 방식 4. PageableExecutionUtils를 이용한 고급 최적화 5. 정렬 처리: Sort → OrderSpecifier 변환 6. 실제 컨트롤러에서의 적용 7. 요약 정리 1. 사용자 정의..

Backend/JPA 2025.04.11

Querydsl - 사용자 정의 JPA 리포지토리 설계 및 구현

📌 목차 1. 기본 JPA Repository의 한계 2. 사용자 정의 리포지토리 설계 및 구현 3. Querydsl 기반 동적 검색 로직 구현 4. 테스트 코드를 통한 검증 5. 전체 구조 요약 6. 추가 팁 및 주의사항 ">📌 목차1. 기본 JPA Repository의 한계 2. 사용자 정의 리포지토리 설계 및 구현 3. Querydsl 기반 동적 검색 로직 구현 4. 테스트 코드를 통한 검증 5. 전체 구조 요약 6. 추가 팁 및 주의사항 1. 기본 JPA Repository의 한계">1. 기본 JPA Repository의 한계Spring Data JPA는 JpaRepository 인터페이스를 통해 CRUD 기능 및 간단한 쿼리 메서드를 손쉽게 제공한다. 예컨대, 다음과 같이 사용자 이름을 기준..

Backend/JPA 2025.04.11

QueryDSL - 한 번의 SQL 쿼리로 여러 건의 데이터를 일괄 수정 또는 삭제하는 방법 (벌크 연산)

📌 목차 1. 벌크 연산이란? 2. QueryDSL 벌크 수정 (Update) 3. QueryDSL 벌크 삭제 (Delete) 4. 주의사항: 영속성 컨텍스트와의 관계 5. 추가로 알아야 할 개념 6. 정리 ">📌 목차1. 벌크 연산이란? 2. QueryDSL 벌크 수정 (Update) 3. QueryDSL 벌크 삭제 (Delete) 4. 주의사항: 영속성 컨텍스트와의 관계 5. 추가로 알아야 할 개념 6. 정리 1. 벌크 연산이란?">1. 벌크 연산이란?벌크 연산(Bulk Operation)이란, 한 번의 SQL 쿼리로 여러 건의 데이터를 일괄 수정 또는 삭제하는 작업을 말한다.이는 개별 엔티티를 하나씩 수정하거나 삭제하는 것보다 훨씬 빠르고 효율적이다.특징설명목적대량 데이터 일괄 처리성능단건 처리..

Backend/JPA 2025.03.25

QueryDSL 동적 쿼리 - (BooleanBuilder, Where 다중 파라미터 방식)

📌 목차 1. 동적 쿼리(Dynamic Query)란? 2. BooleanBuilder 방식 3. where 다중 파라미터 방식 4. 두 방식의 차이점 및 비교 5. 추가적으로 알아야 할 개념 6. 정리 ">📌 목차1. 동적 쿼리(Dynamic Query)란? 2. BooleanBuilder 방식 3. where 다중 파라미터 방식 4. 두 방식의 차이점 및 비교 5. 추가적으로 알아야 할 개념 6. 정리 1. 동적 쿼리(Dynamic Query)란?">1. 동적 쿼리(Dynamic Query)란?동적 쿼리란 입력값에 따라 where 절의 조건이 유동적으로 바뀌는 쿼리를 의미한다.예시검색 조건으로 이름, 나이 중 하나만 입력한 경우사용자 선택에 따라 조건이 유동적으로 적용되는 UI 필터QueryDSL..

Backend/JPA 2025.03.25

JPA (Spring Data JPA) - Spring Boot 3+ QueryDSL 및 JPA 기본 설정, p6spy 로깅 방법

📌 목차 1. QueryDSL 개요 2. QueryDSL 설정 및 빌드 프로세스 3. JPA 관련 YML 설정 4. Hibernate Dialect 및 ddl-auto 설정 5. P6Spy를 활용한 SQL 로그 설정 6. 정리 ">📌 목차1. QueryDSL 개요 2. QueryDSL 설정 및 빌드 프로세스 3. JPA 관련 YML 설정 4. Hibernate Dialect 및 ddl-auto 설정 5. P6Spy를 활용한 SQL 로그 설정 6. 정리 1. QueryDSL 개요">1. QueryDSL 개요QueryDSL이란?QueryDSL은 타입 세이프(Typed-safe)한 쿼리를 작성할 수 있도록 지원하는 DSL(Domain Specific Language) 라이브러리다.JPA, SQL, Mong..

Backend/JPA 2025.03.13

JAVA - 조건에 따라 검색된 엔티티 중 가장 높은 PK 값을 가진 엔티티 찾기

데이터 리스트에서 특정 조건을 만족하는 엔티티 중 가장 높은 PK 값을 가진 엔티티를 찾는 방법은 여러 가지가 있습니다. 특히 Java Stream API, Collections, Comparator, Spring Data JPA, 그리고 Querydsl을 활용하면 효율적으로 최댓값을 가진 엔티티를 찾을 수 있습니다.이번 글에서는 조건을 추가하여 최댓값을 가진 엔티티를 찾는 방법을 정리해보겠습니다.1. Java Stream API 활용 (가장 간결한 방법)Optional maxEntity = list.stream() .filter(entity -> entity.getStatus().equals("ACTIVE")) // 특정 조건 적용 .max(Comparator.comparing(Entity..

Backend 2025.02.11