인프런 커뮤니티 질문&답변
Querydsl 사용 중 오류
해결된 질문
작성
·
594
0
query dsl 사용중에 다음과 같은 오류가 발생했습니다.
오류 1 . DataJpaTest org.hibernate.PersistentObjectException: detached entity passed to persist:
오류 2. JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate. Use build process "jps.track.ap.dependencies" VM flag to enable/disable incremental annotation processing environment.
Annotation Processer는 체크되어있는 상태입니다. lombok을 최신버전으로 명시해줘도 해결되지 않았습니다.
하나의 dependency를 추가하면 정상 실행되는 이상한 현상(?)이 발생했습니다. 추가한 dependency를 삭제하면 여전히 실행되지 않았구요. (특정 dependency가 아니라 무엇이든 상관없었습니다.)
=> 질문을 올린 이후에 gradlew clean / build로 해결하였습니다.
저와 같은 현상을 겪는 분들이 많은 것 같아 질문은 삭제하지 않고 남겨두도록 하겠습니다.
<gradle 파일> (일부러 h2 부분 주석처리 해놓았습니다.)
plugins {
id 'org.springframework.boot' version '2.4.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
id "io.franzbecker.gradle-lombok" version "3.0.0"
}
group = 'ShallWe'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'junit:junit:4.12'
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.querydsl:querydsl-jpa'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
// runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
// testImplementation 'org.springframework.security:spring-security-test'
implementation('org.springframework.boot:spring-boot-starter-validation')
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
<application.yml>
spring:
output:
ansi:
enabled: always
datasource:
url: jdbc:mariadb://localhost:3306/shallwetest?useUnicode=true&characterEncoding=utf-8
username: username
password: password
driver-class-name: org.mariadb.jdbc.Driver
jpa:
hibernate:
ddl-auto: update #create , create-drop , update , validate, none
properties:
hibernate:
show_sql: true
format_sql: true





