Query DSL
Querydsl gradle 4줄 초간단 설정
CodeMania
2022. 2. 17. 10:07
build.gradle의 dependencies에 다음 4줄만 추가해주면 QueryDSL 설정이 끝나게 된다.
com.ewerk.gradle.plugins.querydsl plugin을 사용한다면 지워버리자.
해당 plugin은 2018년 7월에 마지막 업데이트가 있었고,
지금의 gradle(7.4)과는 호환이 잘 안 된다.
dependencies {
//querydsl
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa")
annotationProcessor("jakarta.persistence:jakarta.persistence-api")
annotationProcessor("jakarta.annotation:jakarta.annotation-api")
//생략
}
Test code 작성
package study.querydsl.entity;
//import 생략
@Data @Entity
@Setter(AccessLevel.NONE)
public class TestEntity {
@Id @GeneratedValue
private Long id;
}
Id 필드만 가지고 있는 TestEntity를 만들었다.
이제 프로젝트를 build하면 /build/generated 하위에 QTestEntity가 생성된다.
package study.querydsl;
//import 생략
@Transactional
@SpringBootTest
class QuerydslApplicationTests {
@Autowired
EntityManager em;
@Test
void contextLoads() {
TestEntity t = new TestEntity();
em.persist(t);
JPAQueryFactory jpa = new JPAQueryFactory(em);
TestEntity result = jpa.selectFrom(QTestEntity.testEntity)
.where(QTestEntity.testEntity.id.eq(t.getId()))
.fetchOne();
assertThat(result).isEqualTo(t);
}
}
test code도 잘 동작하는 것을 확인할 수 있을 것이다.