반응형
Spring 에서 QueryDSL 을 사용하기 위해서는 아래와 같은 절차를 따르면 쉽게 사용이 가능하다.
먼저 사용을 위해 maven 등록을 해준다.
https://mvnrepository.com/artifact/com.querydsl/querydsl-jpa
https://mvnrepository.com/artifact/com.querydsl/querydsl-apt
이 두개의 repository를 넣으면 된다.
<dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-jpa</artifactId> <version>5.0.0</version> <classifier>jakarta</classifier> </dependency> <dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-apt</artifactId> <version>5.0.0</version> <classifier>jakarta</classifier> </dependency> |
jakarta 이슈로 인해 classifier 를 추가하였다.(자세한 내용은 참고 포스팅 참고)
그리고 Entity를 하나 만들어준다.(QueryDsl을 사용하기 위해서는 Entity를 QClass로 만들어야함.)
다음에 maven compile을 한번 진행해준다.
그래야 QClass 파일이 생긴다.
성공적으로 maven 작업을 했다면 만들어진 QClass 를 아래와 같이 사용하면된다.
public class QuerydslService { @PersistenceContext EntityManager em; public List<QueryTestTable> testQuerydsl(String id) { JPAQueryFactory queryFactory = new JPAQueryFactory(em); QQueryTestTable qTestTable = QQueryTestTable.queryTestTable; List<QueryTestTable> list = queryFactory.select( Projections.fields(QueryTestTable.class, qTestTable.id, qTestTable.nameValue, qTestTable.gender, qTestTable.birth, qTestTable.fctr1, qTestTable.aNo) ).from(qTestTable) .where(qTestTable.id.eq(id)) .orderBy(qTestTable.nameValue.asc()) .fetch(); return list; } } |
만약 QClass가 정상적으로 import 되지 않는다면 아래 참고포스팅을 참고하여 해결할수 있다.
참고 포스팅
https://thenicesj.tistory.com/958
https://thenicesj.tistory.com/959
반응형
'IT > Java' 카테고리의 다른 글
Resource 인터페이스 관련 (22) | 2024.06.16 |
---|---|
특정 폴더 내에 파일 리스트 뽑아오는 법 (16) | 2024.06.15 |
[Error] com.querydsl.core.types.QBean com.example.queyrdsl.entity.test with modifiers "protected" (12) | 2024.06.11 |
[QueryDSL] Q Class import 안될 때 (14) | 2024.06.10 |
[Error] Caused by: java.lang.NoClassDefFoundError: javax/persistence/Entity maven (23) | 2024.06.09 |
댓글