테스트 코드는 성공했지만 중간 테이블이 2개나 생성되는 현상을 해결하고 싶었다.
public class Restaurant {
@OneToMany(mappedBy = "restaurant", cascade = CascadeType.ALL)
@JsonIgnore
private List<Food> foods = new ArrayList<>();
}
중간 테이블을 제거하기 위해 고쳤을 당시에 RESTAURANT 엔티티에 foods 필드를 갖고있었다.
mappedBy
속성을 추가해서 없애는데 성공하긴 했지만,
찾아보면서 해당 필드는 없어도 테스트 코드에도 문제가 없고, 중간 테이블도 생성되지 않는다는 것을 알게됐다.
public class Order {
@OneToMany
private List<OrderFood> foods = new ArrayList<>();
}
public class Order {
@OneToMany(mappedBy = "order")
private List<OrderFood> foods = new ArrayList<>();
}
public class OrderFood {
@ManyToOne()
private Order order;
}
mappedBy 속성 추가 & OrderFood에 order필드 추가
중간 테이블은 사라졌지만, 주문 조회하는 테스트 코드 실패
public class Order {
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "order_id")
private List<OrderFood> foods = new ArrayList<>();
}
mappedBy 속성 제거 &@JoinColumn 추가 -> 테스트 성공
그런데 ORDER_FOOD 테이블에 ORDER_ORDER_ID
이 생겼다..
그래서 OrderFood 엔티티에서 추가했던 Order order필드 제거했더니 삭제됐음!