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

임정호님의 프로필 이미지
임정호

작성한 질문수

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

Spring REST Docs1 - 기본설정

PostEditorBuidler cannot find symbol 오류

작성

·

708

0

안녕하십니까 호돌맨님 교육 강의를 듣고있는 학생입니다. 다름이 아니라 도저히 구글링을 해봐도 해결책을 찾지 못해서 질문 남깁니다.

 

PostEditor

postEditor.png

Service -> edit method

seviceCode.png

PostEntity

post.png

Error

오류 메세지.png

Spring REST Docs1 - 기본설정 챕터에서 30분 정도에 호돌맨님이 Gradle 에 build 버튼을 누르시는데 거기서 querydsl compile 과 관련된 에러가 납니다. 내용을 보면 PostEditor 에서 PostEditorBuilder 심볼을 찾지 못한다고 에러가 발생하는데 Q파일 생성 문제인거 같은데 구글링을 해봐도 문제해결을 하지 못하였습니다.

호돌맨님이 작성하신 코드랑 제가 다르게 작성한 코드 부분는 그냥 PostEditor 자체에서 static 으로callEditor 를 호출해서 PostEdit 파라미터로 받아서 값을 셋팅하고 Post 엔티티에 넘겨주는 방식으로 수정해 봤습니다.

 

git url : https://github.com/ilikeamoney/inflearn-hodolman

 

 

 

 

 

 

 

 

 

 

 

답변 4

0

build.gradle에 문제가 있었던 것 같네요.
이걸로 바꾸고 하니까 잘 됩니다..
그리고 Project Structure -> Project Settings -> Project -> SDK에 1.8로 잡혀있으신거 같던데 11로 바꿔서 해보세요

그리고 혹시나 환경변수도 11로 설정되어 있는지 확인해보세요

0

plugins {
 id 'java'
 id 'org.springframework.boot' version '2.7.5'
 id 'io.spring.dependency-management' version '1.0.15.RELEASE'
 id "org.asciidoctor.jvm.convert" version "3.3.2"
}

group = 'com.baeklog'
version = '0.0.1-SNAPSHOT'

java {
 sourceCompatibility = '11'
}

configurations {
 compileOnly {
 extendsFrom annotationProcessor
}
 asciidoctorExt
}

repositories {
 mavenCentral()
}

ext {
 asciidocVersion = '2.0.7.RELEASE'
 snippetsDir = file('build/generated-snippets')
}

dependencies {
 implementation 'org.springframework.boot:spring-boot-starter-web'
 implementation 'org.springframework.boot:spring-boot-starter-validation'
 implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

 // Spring Docs
 asciidoctorExt "org.springframework.restdocs:spring-restdocs-asciidoctor:${asciidocVersion}"
 testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:${asciidocVersion}"

 // QueryDSL
 implementation 'com.querydsl:querydsl-core'
 implementation 'com.querydsl:querydsl-jpa'
 annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"

 annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
 annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
 annotationProcessor 'org.projectlombok:lombok'

 compileOnly 'org.projectlombok:lombok'
 runtimeOnly 'com.h2database:h2'

 testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
 outputs.dir snippetsDir
}

asciidoctor {
 inputs.dir snippetsDir
configurations 'asciidoctorExt'
 dependsOn test
}

bootJar {
 dependsOn asciidoctor
from ("${asciidoctor.outputDir}/html5") {
 into 'static/docs'
 }
}

tasks.named('test') {
 useJUnitPlatform()
}

0

호돌맨님의 프로필 이미지
호돌맨
지식공유자

안녕하세요. 호돌맨입니다.
답변이 늦어서 죄송합니다.

말씀하신 방법대로 해도됩니다.
lombok 문제인지 해당 문제가 예전에 저도 발생했었거든요
그래서 직접 빌더 패턴을 이용 했었습니다.

어쨌거나 데이터를 수정할 수 있는 범위를 지정한다는게 중요한거라
편하신 방법으로 하셔도 된다고 생각합니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요.
해당 문제는 PostEditorBuilder 클래스가 import 되지 않는 문제인 것 같습니다. 우선 build.gradle 파일에 ‘querydsl-apt’과 ‘querydsl-jpa’ 라이브러리를 추가하셨는지 확인해보시기 바랍니다. 만약 추가되어 있지 않다면 dependencies에 다음과 같이 추가해주세요.

dependencies {
//…
compile(‘com.querydsl:querydsl-jpa’)
compile(‘com.querydsl:querydsl-apt’)
//…
}

그리고 해당 라이브러리들이 정상적으로 설치되었는지도 확인해보세요. Gradle 캐시를 삭제하고 다시 빌드해보시면 문제가 해결될 수 있습니다. 만약 그래도 문제가 해결되지 않는다면, 코드 자체를 확인해보시기 바랍니다.
해당 문제에서 수정하신 방식으로 코드를 작성하셨다고 하셨는데, static으로 호출한 부분에서 문제가 생길 수 있으니 호출하는 방식도 제대로 확인해보세요. 감사합니다.

이거진짜 AI 인가요?

임정호님의 프로필 이미지
임정호

작성한 질문수

질문하기