전체 글
-
실무에서 자주 쓰는 Querydsl 패턴과 유틸 정리개발/Querydsl 2025. 6. 4. 10:12
실무에서는 단순 조회를 넘어 복잡한 조건 조합, 페이징 처리, DTO 조회 등 다양한 패턴이 필요합니다. 이 글에서는 자주 쓰이는 실전 Querydsl 패턴을 모아 정리합니다.주요 패턴:Builder를 이용한 동적 where 조건Projection으로 DTO 직접 매핑 (Constructor, Fields, @QueryProjection)BooleanBuilder, Expressions, CaseBuilder 사용 예페이징 처리 (fetchResults, PageableExecutionUtils)Querydsl을 Repository Custom 구현에 적용하는 방법
-
Querydsl 기본 사용법 – Select, Where, Join 쿼리 작성하기개발/Querydsl 2025. 6. 4. 10:12
Querydsl을 이용하면 JPA의 복잡한 동적 쿼리를 깔끔하게 작성할 수 있습니다. Q타입 객체를 기반으로 select, where, join 등 다양한 쿼리를 타입 안정성 있게 작성할 수 있습니다.예제 포함 내용:기본 Select 쿼리java복사편집QMember member = QMember.member; Member result = queryFactory .selectFrom(member) .where(member.username.eq("user1")) .fetchOne(); 동적 Where 조건and(), or() 조합 사용법Join 예제 (inner join, left join 등)fetchOne vs fetch vs fetchFirst
-
Spring 프로젝트에 Querydsl 설정하기 (Gradle 기반)개발/Querydsl 2025. 6. 4. 10:11
Querydsl은 설정만 잘 해두면 매우 편리하게 사용할 수 있습니다. 특히 Gradle이나 Maven을 이용한 설정이 중요합니다. 여기서는 Gradle(Spring Boot 2.x 또는 3.x) 기준으로 설정법을 안내합니다.주요 내용:의존성 추가Querydsl 관련 JPA Q타입 생성 설정 (annotationProcessor, querydsl-apt)build.gradle.kts 혹은 build.gradle 설정 예시IDE Q타입 자동 생성 확인 및 문제 해결법 (예: IntelliJ에서 Build 자동 생성 안될 때)groovy복사편집dependencies { implementation 'com.querydsl:querydsl-jpa' annotationProcessor 'com.querydsl:q..
-
Querydsl란? JPA와의 차이점과 도입 이유개발/Querydsl 2025. 6. 4. 10:08
Querydsl은 Java 기반의 타입 세이프한 쿼리 빌더(Query Builder) 라이브러리입니다. 특히 JPA와 함께 사용할 때 JPQL의 단점을 보완해주며, IDE의 자동완성과 컴파일 타임 타입 체크가 가능하다는 점이 강력한 장점입니다.주요 내용:JPQL의 한계: 문자열 기반 → 오타, 리팩토링 어려움Querydsl의 장점:IDE 자동완성타입 안정성 (컴파일 에러 유도)복잡한 조건문 조합도 깔끔하게 처리Querydsl vs JPQL vs Criteria API 간 비교실무에서 Querydsl을 도입해야 하는 이유복잡한 검색 조건가독성과 유지보수성
-
JPA 실무 활용 – 연관관계 매핑과 성능 최적화 전략개발/JPA 2025. 6. 4. 10:07
실무에서 JPA를 제대로 사용하려면 연관관계 매핑과 퍼포먼스 튜닝이 핵심입니다.주요 내용:연관관계 매핑 종류단방향/양방향@ManyToOne(fetch = LAZY)@OneToMany(mappedBy = "member")Cascade, orphanRemoval 개념N+1 문제 설명과 해결 방법 (Fetch Join, @EntityGraph)페치 전략 (LAZY vs EAGER)JPQL과 Native Query 사용 팁실무에서 발생하는 대표적인 실수 예시🎯 정리글 번호주제 요약대상 독자1JPA 개념과 작동 원리JPA 초보, 입문자2Spring 환경에서 설정 적용실무 적용 준비자3CRUD 기본 사용법실습 및 기본 기능 익히는 사람4연관관계 및 성능 최적화 실무 패턴 정리고급 사용자, 실무자
-
JPA 기본 사용법 – Entity 저장, 조회, 수정, 삭제개발/JPA 2025. 6. 4. 10:05
JPA의 핵심은 Entity를 통해 데이터를 다루는 것입니다. 여기서는 기본적인 CRUD 동작을 하나씩 설명합니다.주요 내용:@Entity 클래스 정의 예기본 저장 (EntityManager.persist() / JpaRepository.save())조회 (findById(), getReferenceById())수정 (더티 체킹 - 변경 감지)삭제 (deleteById())@Transactional의 의미와 작동 방식java복사편집@Transactional public void updateMember(Long id, String newName) { Member member = memberRepository.findById(id).orElseThrow(); member.setUsername(newName)..
-
Spring 프로젝트에 JPA 적용하기 – 기본 설정과 주의사항개발/JPA 2025. 6. 4. 09:46
JPA는 설정만 잘 해도 절반은 성공입니다. Spring Boot 기준으로 기본적인 설정과 속성에 대해 다룹니다.주요 내용:build.gradle 의존성 추가groovy복사편집implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' // 개발용 DB application.yml 설정 예시yaml복사편집spring: datasource: url: jdbc:h2:mem:testdb jpa: hibernate: ddl-auto: update show-sql: true properties: hibernate: format_sql: true DDL 자동 생성 옵션 설명 (create, u..
-
JPA란 무엇인가? ORM과의 관계, 동작 방식 총정리개발/JPA 2025. 6. 4. 09:45
JPA는 Java 진영에서 표준 ORM(Object Relational Mapping) 기술입니다. Hibernate, EclipseLink 같은 구현체가 있고, Spring Data JPA는 JPA를 더 쉽게 사용할 수 있도록 추상화한 라이브러리입니다.주요 내용:JPA의 정의 및 ORM이란 무엇인가?JPA → Hibernate → Spring Data JPA 관계도JPA가 제공하는 기능: Entity 관리, 자동 SQL 생성, 관계 매핑 등JPA의 주요 어노테이션 요약 (@Entity, @Id, @GeneratedValue, @ManyToOne, @OneToMany, 등)영속성 컨텍스트 개념