• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

24.02.02 18:11 작성 조회수 168

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

질문자

2024.02.05

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

 

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

 

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