티스토리 뷰
Server/Spring
[Spring/Kotlin] querydsl 5.0.0 and "javax.persistence.NoResultException"
Agrafenaaa 2023. 9. 12. 18:04ISSUE : The service test failed when loading a list of posts using querydsl for a custom query - findPageBy (CustomPostRepositoryImpl).
- Error message
javax.persistence.NoResultException
java.lang.ClassNotFoundException: javax.persistence.NoResultException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at org.springframework.data.jpa.repository.support.Querydsl.createQuery(Querydsl.java:83)
at org.springframework.data.jpa.repository.support.Querydsl.createQuery(Querydsl.java:99)
at org.springframework.data.jpa.repository.support.QuerydslRepositorySupport.from(QuerydslRepositorySupport.java:110)
at com.grusha.board.repository.CustomPostRepositoryImpl.findPageBy(PostRepository.kt:21)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
- CustomPostRepositoryImpl class
class CustomPostRepositoryImpl: CustomPostRepository, QuerydslRepositorySupport(Post::class.java) {
override fun findPageBy(pageRequest: Pageable, postSearchRequestDto: PostSearchRequestDto): Page<Post> {
//
//
}
}
- ServiceTest class
given("게시글 목록 조회") {
When("정상 조회") {
val post = postService.findPageBy(PageRequest.of(0, 5), PostSearchRequestDto(title = "title1"))
then("게시글 페이지를 반환합니다.") {
post.number shouldBe 0
...
...
}
}
It was not possible to determine the correct reason from the stacktraces with a debugger, as the qClass, which is generated automatically by QuerydslRepositorySupport in repository implementation class, was being referenced. Cleaning the build and invalidating caches, and similar actions didn't work at all, but append the suffix 'jakarta' to the dependency "querydsl" resolved it and compiled without errors finally 😋
SOLUTION : append the suffix 'jakarta' to the dependency !
plugins {
id("org.springframework.boot") version "3.1.3"
id("io.spring.dependency-management") version "1.1.3"
id("org.jlleitschuh.gradle.ktlint") version "11.4.0"
kotlin("jvm") version "1.8.22"
kotlin("plugin.spring") version "1.8.22"
kotlin("plugin.jpa") version "1.8.22"
kotlin("kapt") version "1.8.22"
}
...
dependencies {
// not "com.querydsl:querydsl-jpa:5.0.0")
implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")
kapt("com.querydsl:querydsl-apt:5.0.0:jakarta")
}
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- android_domain
- querydslQclass
- futter_api
- unsplashAPI
- FlutterWirelessDebuginAOS
- flutter_android_app_links
- WirelessDebug
- android_app_links
- phplaravel
- RunAFlutterProjectIniPhoneFromVSCode
- KotlinFlow
- Android
- MultipleFirebaseEnvironments
- querydsl5.0.0jakarta
- android_app_link_domain_works_with_adb_but_not_works_with_browser
- Laravel
- FirebaseConfigurationForMultipleBuildTypes
- flutter_storage_not_working_for_the_first_time
- mvvm
- flutter_secure_storage_issue_iOS
- laravel9
- retrofit_generator_conflicts_with_freezed
- flutter
- dagger-hilt
- querydslKotlinError
- android_app_links_domain
- retrofit_generator
- Kotlin
- AndroidWirelessDebug
- retrofit_toJson()_error
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함