Closed mingyu-lee closed 1 week ago
참고로 gradle multi module 구조이고요 meet 모듈에서 jpa 모듈을 참고ㅎkrh, kotlin jdsl은 jpa 모듈에 선언되어있어요
kotlin jdsl 버전은 3.4.2 spring 버전은 2.7.18 kotlin은 1.9.24 입니다 java 17 입니다
meet - build.gradle.kts
dependencies {
// infrastructure
implementation(project(":infrastructure:jpa"))
}
jpa - build.gradle.kts
val kotlinJDSLVersion: String by project
val mysqlConnectorVersion: String by project
plugins {
id("org.jetbrains.kotlin.plugin.jpa")
}
dependencies {
api("org.springframework.boot:spring-boot-starter-data-jpa")
api("org.hibernate:hibernate-core:5.4.27.Final")
api("com.mysql:mysql-connector-j:$mysqlConnectorVersion")
api("com.linecorp.kotlin-jdsl:jpql-dsl:$kotlinJDSLVersion")
api("com.linecorp.kotlin-jdsl:jpql-render:$kotlinJDSLVersion")
api("com.linecorp.kotlin-jdsl:spring-data-jpa-support:$kotlinJDSLVersion")
implementation("org.flywaydb:flyway-core")
implementation("org.flywaydb:flyway-mysql")
}
안녕하세요. 혹시 spring을 debug 모드로 켜서 KotlinJdslAutoConfiguration 설정이 enable 되었는지 확인해주실 수 있으신가요?
말씀주신 에러는 KotlinJdslJpaRepositoryFactoryBeanPostProcessor
를 통한 custom implementation 주입이 되지 않았을 때 발생하는 에러로,
DataJpaTest를 사용하실 때에 Import로 KotlinJdslAutoConfiguration를 포함하지 않았거나, 자체 Spring AutoConfigure를 작성하시면서 KotlinJdslAutoConfiguration가 제외되지 않았을까 생각됩니다.
전체 설정이 확인이 안된 상황에서 혼란스러울수 있는 답변을 드린것 같아 답글은 삭제 했습니다. 위 @shouwn 님 답변 확인해봐주시고 안되시면 재현 가능한 최소한의 프로젝트를 공개해주시면 확인 해볼 수 있을것 같습니다.
@shouwn @cj848 답변 감사합니다. 급한대로 querydsl 사용해서 진행 중입니다. 시간이 된다면 다시 한번 설정 해볼게요 ㅜㅜ
@mingyu-lee 넵 해결이 된다면 좋겠네요. ㅠㅠ
추가로 Spring Boot 3.x를 쓰고 계신데도 불구하고 jakarta EntityManager가 클래스패스에 없는 경우도 있는 것 같습니다. 동일 문제일 수 있어 당시 이야기 나누었던 디스코드 쓰레드의 링크를 남깁니다.
https://discord.com/channels/1087271586832318494/1124136741650042931/1250684882582241320
위에 말씀드린 내용과 디스코드 쓰레드를 통해서도 해결이 되지 않으면 다시 이슈를 오픈해주세요.
안녕하세요
kotlin jdsl spring support 사용 중입니다
다음과 같은 코드를 작성했는데
MeetRepository
MeetReader
애플리케이션 실행시 이런 에러가 나오네요
혹시 어떤 부분이 문제인지 확인 해주실 수 있나요~?
감사합니다