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

민기단님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

엔티티 클래스 개발2

Member 테이블 외 DB 생성이 되지 않음

작성

·

214

·

수정됨

0

[질문 내용]

코드를 어제 새벽부터 계속 확인해보았는데 DB 생성이 되지 않습니다. 강사님과 스프링, DB 버전이 달라서 생기는 오류인가요? 해결 방법을 모르겠습니다..

 

JPA와 DB 설정, 동작 확인에서 Member 테이블은 생성이 되었습니다. 그러나 도메인 분석 설계 섹션 강의에서 진행한 Orders, category, delivery, item과 같은 테이블이 생성이 되지 않습니다.

 

spring-boot는 3.2.4 버전을, H2의 경우 2.2.224 버전을 사용했으며, JUnit4는 현재 사용중인 springboot와 호환이 되지 않아 JUnit5를 사용하였습니다.

 

아래 드라이브 링크는 코드 전체 압축파일 입니다!

https://drive.google.com/file/d/1_Xithr3ZMw4MzcHRz1E2TDypWM0c-_Ry/view?usp=sharing

답변 1

0

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

안녕하세요. 민기단님

테이블이 생성되지 않은 이유는 다음과 같은 예외가 발생했기 때문입니다.

Collection 'jpabook.jpashop.domain.Order.orderItems' is 'mappedBy' a property named 'order_id' which does not exist in the target entity 'jpabook.jpashop.domain.OrderItem'

 

다음 코드를 수정해주세요.

@Entity
@Table(name = "orders")
@Getter @Setter
public class Order {

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

    @ManyToOne
    @JoinColumn(name = "member_id")
    private Member member;

    @OneToMany(mappedBy = "order_id") //여기는 order_id -> order로 수정
    private List<OrderItem> orderItems = new ArrayList<>();
    

이 코드에서 mappedBy = "order"로 수정하셔야 합니다.

 

감사합니다.