[build.gradle]
- 스프링 부트 2.6 버전 이상부터 querydsl gradle 설정이 변경되었습니다.
- 최근에는 3.0 버전이 나왔는데, 이후 버전의 gradle 설정은 다음에 알아보도록 하겠습니다.
// 추가
buildscript {
ext {
queryDslVersion = '5.0.0'
}
}
plugins {
id 'java'
id 'org.springramework.boot' version '2.7.6'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
// 추가
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}
...
dependencies {
// 추가
implementation 'com.querydsl:querydsl-jpa:${queryDslVersion}'
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
implementation "com.querydsl:querydsl-core:${queryDslVersion}"
...
}
...
// querydsl 빌드 경로 변수
def querydslDir = '$buildDir/generated/querydsl'
querydsl {
jpa = true
querydslSourceDir = querydslDir
}
// build시 사용할 sourceSet
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
// querydsl compile시 사용할 옵션
compileQuerydsl {
options.annotationProcessorPath = configuration.querydsl
}
[검증]
- build.gradle 설정 파일에 Querydsl 설정이 끝났다면.. 잘 실행되는지 검증을 해봐야 합니다..
- 테스트를 위해 간단한 Entity 클래스 파일을 생성해봅니다.
@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member {
@Id
@GeneratedValue
@Column(name = "member_id")
private Long id;
private String username;
public Member(String username){
this.username = username;
}
}
- [IntelliJ 빌드 방법]
- Gradle -> Tasks -> build -> clean
- Gradle -> Tasks -> other -> compileQuerydsl
- [Gradle 콘솔 방법]
- 프로젝트 디렉토리 이동 후 ./gradlew clean compileQuerydsl 명령어 실행
- build.gradle에 빌드 경로( build/generated/querydsl )에 앞서 생성한 Entity 클래스가 Q타입으로 생성됩니다.
@SpringBootTest
@Transactional
class QuerydslTest {
@Autowired
JPAQueryFactory queryFactory;
...
@Test
void startQuerydsl(){
QMember m = new QMember("m");
Member findMember = queryFactory.select(m)
.from(m)
.where(m.username.eq("lee"))
.fetchOne():
assertThat(findMember.getUsername()).isEqualTo("lee");
}
}
- 간단한 테스트 케이스를 작성 후 검증해봅니다..
여기서는 데이터를 저장하는 부분까지는 없으니, 그부분은 따로 해보시길 바랍니다..
'Spring > QueryDSL' 카테고리의 다른 글
사용자 정의 Repository (0) | 2021.06.19 |
---|---|
페이징 활용 2 - CountQuery 최적화 (0) | 2021.06.18 |
페이징 활용 1 - Querydsl 페이징 연동 (0) | 2021.06.17 |
SQL function 호출하기 (0) | 2021.06.16 |
수정, 삭제 벌크연산 (0) | 2021.06.15 |
댓글