강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

dop님의 프로필 이미지
dop

작성한 질문수

실전! Querydsl

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

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

dop님 감사합니다.

dop님의 프로필 이미지
dop

작성한 질문수

질문하기