상품 이미지들 -> 상품 1대다 매핑관계에서 view에 페이징을 이용해 데이터를 호출하는데 여기서 기존 페이징 처리하는 코드를 응용해서 querydsl을 작성했을 때 productId 값이 productImage의 개수 만큼 row 수가 늘어나는 문제가 있는데 이건 따로 애플리케이션에서 중복 코드를 삭제하고 해야되는지 아님 다른 방법이 있는지 잘 모르겠습니다...
Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Getter
public class Products extends BaseTimeEntity {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "productId")
private Long productId;
private String productName;
private String productColor;
private Float productSize;
private Float productWeight;
private String productOther;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "userId")
private Users user;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "factoryId")
private Factories factory;
@OneToMany(mappedBy = "products")
private List<ProductImage> productImage;
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class ProductImage {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "imageId")
private Long imageId;
private String imagePath;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "productId")
private Products products;
@Builder
public ProductImage(String imagePath, Products products) {
this.imagePath = imagePath;
this.products = products;
}
}
안녕하세요. 재성님
우선 스프링 부트와 JPA 활용2편을 한번 복습해보시는 것을 권장합니다.
그래도 해결이 어려우면
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
https://bit.ly/3fX6ygx
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
링크: 공식 서포터즈
링크: 자주하는 질문
감사합니다.
답글