기능
을 사용하였는지코드
는 어떠한 로직
을 가지고 있는지코드
를 작성하며 발견된 버그
나 오류
는 어떠한게 있었는지 그리고 어떻게 해결하였는지.😒1차 오류❔
@Getter
@Entity
@NoArgsConstructor
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id") //판매자 ID (FK)
private Long userId;
판매자Id 를 조인하고 싶어 이렇게 로직은 짰으나 Long 에 빨간표시가 되며 에러발생
연관관계 매핑할때
멤버변수는 조인하고 싶은 객체를 조인해야 한다!( userId가 아닌 user)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id") //판매자 ID (FK)
private User user;
😒2차 오류❔
변경하면 빨간 표시는 없으나 H2 DB상에서 User 값이 들어오지 않았다.
그래서 면밀히 다시 보니 ,,,, 생성자에 User를 넣지 않아 값을 받아오지 못하고 있었다.
@Getter
@Entity
@NoArgsConstructor
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "seller_id") //판매자 ID (FK)
private User user;
....
public Product(ProductRequest request, User user) {
this.user = user;
this.productName = request.getProductName();
this.productPrice = request.getProductPrice();
this.productQuantity = request.getQuantity();
this.productImage = request.getProductImage();
this.productDetail = request.getProductDetail();
this.productCategory= request.getProductCategory();
}
😁에러 해결 !
하지만 막상 User로 만들긴 했지만 내 로직에서는 User를 받아오지 않더라도 UserDetail에서 UserId를 가져오고, SellerId 만 필요하기 때문에 굳이 User를 가져올 필요성을 느끼지 못했다.
그래서
😘 3차 시도