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

yu6jin님의 프로필 이미지
yu6jin

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

실전 예제 4 - 상속관계 매핑

상속관계 설정시, Getter & Setter 설정

작성

·

388

0

해당 강의에서는 Lombok을 사용하지 않지만,

실습중에 lombok을 추가하여 @Getter, @Setter를 사용하여 자동으로 메서드를 생성해 주었습니다.

 

그런데 상속 받은 자식 클래스에서 부모 클래스의 필드에 접근은 가능하지만, 서버를 돌리면 부모 클래스 필드를 인식하지 못한다는 오류가 나옵니다.

Item.java

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn
@Getter @Setter
public abstract class Item {

    @Id @GeneratedValue
    @Column(name = "ITEM_ID")
    private Long id;

    private String name;
    private int price;
    private int stockQuantity;

    @ManyToMany(mappedBy = "items")
    private List<Category> categories = new ArrayList<>();

}

 

Book.java

package jpabook.jpashop.domain;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;

@Entity
@Getter @Setter
public class Book extends Item{

    private String author;
    private String isbn;

}

 

JpaMain.java

Book book = new Book();
            book.setPrice(15000);
            book.setName("JPA");
            book.setAuthor("USERA");

main 함수를 build하면 아래와 같은 오류가 뜹니다. 해당 오류에 대한 원인과 해결 방안이 궁금합니다.

src\main\java\jpabook\jpashop\JpaMain.java:25: error: cannot find symbol
            book.setPrice(15000);
                ^
  symbol:   method setPrice(int)
  location: variable book of type Book

답변 1

0

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

안녕하세요. yu6jin님

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

 

링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

yu6jin님의 프로필 이미지
yu6jin
질문자

안녕하세요, 해당 오류에 대해서 혼자 설정을 이것저것 만지다보니 해결이 되었습니다.

 

실전 예제 프로젝트(jpaShop)를 기존 강의에서 설정한 것과는 다르게 Gradle 빌드 방식 + lombok 을 사용하였습니다.

 

위 프로젝트내에서 persistence.xml 파일 관련한 오류인, Entity unknown 오류가 발생하여 다른 수강생 분들이 알려주신 project > build > gradle 설정에서 build and run 설정을 Gradle(Default) 값으로 설정되어있는 상태였습니다. 해당 값을 IntelliJ 로 변경해주니 위의 오류가 사라졌습니다.

yu6jin님의 프로필 이미지
yu6jin

작성한 질문수

질문하기