반응형
Notice
Recent Posts
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 리액트
- 주식
- 드로우
- stockx.com
- 발매예정
- 자바스크립트
- GIT
- Dunk Low
- JavaScript
- 제이쿼리
- 오라클
- oracle
- Python
- 덩크 하이
- dunklow
- jQuery
- sacai
- react
- 덩크 로우
- 나이키
- 코로나19
- 리눅스
- 주식공부
- 파이썬
- Linux
- draw
- 덩크로우
- Nike
- Java
- dunk high
Archives
- Today
- Total
Life goes slowly...
[JPA] JPA + Querydsl 코드 작성방법 본문
728x90
반응형
1. Querydsl이란?
Querydsl은 타입 세이프(Type-safe) 한 방식으로 JPQL을 작성할 수 있게 해주는 라이브러리입니다.
- 문자열 JPQL 사용하지 말것 → 컴파일 시 오류 미검출
- Querydsl 사용 → 컴파일 타임에 쿼리 오류 검출
- 동적 쿼리에 매우 강함
- JPA와 자연스럽게 결합
2. 의존성 설정 (Spring Boot + Gradle)
Gradle 설정
dependencies {
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jpa'
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
}
3. Q 클래스 생성
- Entity 기준으로 QEntity 클래스 자동 생성
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String username;
private int age;
}
-> 생성
QMember member = QMember.member;
4. Querydsl 기본 설정
JPAQueryFactory Bean 등록
@Configuration
public class QuerydslConfig {
@PersistenceContext
private EntityManager em;
@Bean
public JPAQueryFactory jpaQueryFactory() {
return new JPAQueryFactory(em);
}
}
5. 기본 조회 쿼리
//리스트 조회
public List<Member> findAll() {
return queryFactory
.selectFrom(member)
.fetch();
}
//조건절
private BooleanExpression usernameEq(String username) {
return username != null ? member.username.eq(username) : null;
}
queryFactory
.selectFrom(member)
.where(
usernameEq("kim"),
ageGoe(20)
)
.fetch();
//Join 사용
queryFactory
.selectFrom(member)
.join(member.team, team)
.where(team.name.eq("개발팀"))
.fetch();
//동적쿼리 - BooleanBuilder
BooleanBuilder builder = new BooleanBuilder();
if (username != null) {
builder.and(member.username.eq(username));
}
queryFactory
.selectFrom(member)
.where(builder)
.fetch();
728x90
반응형
'프로그래밍 > Java' 카테고리의 다른 글
| [JPA] JPA에서 JpaRepository를 사용하여 쿼리 작성 방법 (0) | 2026.01.31 |
|---|---|
| [JPA] JPA - ExpressionUtils / 서브쿼리 (0) | 2026.01.30 |
| [JPA] JPA ExpressionUtils 서브쿼리로 연산방법 (0) | 2026.01.28 |
| [JPA]JPA 로 개발하면서 자주 하는 실수 Top 5 (0) | 2026.01.27 |
| [JPA] JPA 핵심 개념 5가지!!! (0) | 2026.01.26 |
| [JPA] 초보자가 쉽게 이해하는 JPA 동작구조 (0) | 2026.01.25 |
| [JPA] 초보자가 쉽게 이해하는 Spring Data JPA 설명 (3) | 2026.01.24 |
| [Java] 자바에서 객체 정렬하기 - Comparable, Comparator (0) | 2020.10.17 |
Comments