본문 바로가기

Project/Spring

JPA Query DSL

 

설정

우선 @Test 어노테이션 주석처리하기

Window>Show View>Gradle Tasks

프로젝트 파일>build>build 우클릭 후 Run Gradle Tasks

이후 프로젝트에서 Gradle> refresh Gradle project하면 build/generated/quertdsl 폴더 생성됨

-> 안에 QEntity 자바 파일 생성됨

 

config

생성할 객체들을 모아논 클래스

 

Repository

모든 서비스가 공용으로 사용할 BankRepository 생성

간단한 쿼리문(기본 CURD)은 save(insert), findBy(select) 등의 JPA Repository를 사용하고,

복잡한 쿼리문(Join이 필요한 쿼리)은 DSL 문법을 사용한다.

 

QEntity

Repository가 QEntity를 바라보고 DSL쿼리를 사용함.

JPAQueryFactory 사용

 

 

@Transactional

update등 데이터베이스의 내용이 바뀌는 경우에 사용함

update문

.excute()

 

select문

.fetch()

전체를 가져올 경우 사용

.fetchOne()

하나만 가져올 경우 사용

 

Query DSL에서 단방향으로만 Entity끼리 관계 정해주기

단방향이므로 Entity에서 @ToString 사용 가능

단, @OneToOne 일대일 관계는 단방향이 불가능하므로 양방향으로 연결하고 @ToString을 직접 구현해서 사용한다.

 

JPQL

수동으로 쿼리문을 작성해서 사용

Entity가지고 쿼리문 작성

Entity가 아닌 직접 Table에 코드를 넣고 싶으면 Native Query 사용

'Project > Spring' 카테고리의 다른 글

React.js와 SpringBoot 연동하기  (3) 2024.10.30
Spring Security 로그인  (1) 2024.10.25
JPA Database  (6) 2024.10.16
SpringBoot(Gradle)  (6) 2024.10.14
Mini Project을 Spring Frame Work로 변경하기  (1) 2024.10.10