![[QueryDSL] OpenFeign QueryDSL 기본 설정 및 사용법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FJCbPG%2FbtsPqJ8Hr9v%2FAAAAAAAAAAAAAAAAAAAAALK0Ch-FOWSZtJmGKVGbf0aRyBijzv8hG3ioDjWd2a1c%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Di4awGdALkV9atSmmiGf%252Fo32bDPw%253D)
[QueryDSL] OpenFeign QueryDSL 기본 설정 및 사용법Back-End/QueryDSL2025. 7. 19. 20:50
Table of Contents
공식 QueryDSL은 사실상 유지보수 중단상태인것 같다...
마지막 릴리스가 5.1로 이후 업데이트가 없고 취약점 문제도 존재한다고 한다.
OpenFeign의 QueryDSL은 25년 7월 기준 7.0까지 나온상태고 계속 유지보수가 이뤄지고 있는 것 같다.
또한 기본적인 사용법과 API 정의는 거의 동일한것 같기 때문에 OpenFeign의 QueryDSL을 도입하기로 했다.
기본 설정
build.gradle
// QueryDSL 설정 def queryDslVersion = "7.0" // 25년 7월 기준 가장 최신 def querydslSrcDir = layout.buildDirectory.dir("generated/querydsl").get().asFile // build/generated/querydsl tasks.withType(JavaCompile).configureEach { options.getGeneratedSourceOutputDirectory().set(file(querydslSrcDir)) } sourceSets { main { java { srcDirs += querydslSrcDir } } } configurations { querydsl.extendsFrom compileClasspath } // dependencies { .. 중략 //Querydsl 추가 implementation("io.github.openfeign.querydsl:querydsl-core:${queryDslVersion}") implementation("io.github.openfeign.querydsl:querydsl-jpa:$queryDslVersion") annotationProcessor("io.github.openfeign.querydsl:querydsl-apt:$queryDslVersion:jpa") ..중략 } |
Qclass 생성 경로는 build/generated/querydsl로 설정하였다.
사용법
QueryDSLConfig
@Configuration
@RequiredArgsConstructor
public class QueryDSLConfig {
private final EntityManager entityManager;
@Bean
public JPAQueryFactory jpaQueryFactory(){
return new JPAQueryFactory(entityManager);
}
}
UserRepository
public interface UserRepository extends JpaRepository<User, Long>, UserQueryRepository{
...
UserQueryRepository
public interface UserQueryRepository {
// userId를 바탕으로 User 프로필 조회
Optional<UserProfile> findUserProfileById(@Param("id") Long userId);
}
UserQueryRepositoryImpl
@RequiredArgsConstructor
public class UserQueryRepositoryImpl implements UserQueryRepository {
private final JPAQueryFactory queryFactory;
@Override
public Optional<UserProfile> findUserProfileById(Long userId) {
...
'Back-End > QueryDSL' 카테고리의 다른 글
[Query DSL] Spring Data JPA와 Query DSL 통합(+ Query DSL 페이징 최적화) (0) | 2024.08.20 |
---|---|
[Query DSL] 중급 문법 (0) | 2024.08.19 |
[Query DSL] 기본 문법 (0) | 2024.08.18 |
[Query DSL] Query DSL 초기 세팅 (0) | 2024.08.17 |