아래와 같이 에러가 발생했다.
### Cause: java.lang.IndexOutOfBoundsException: Index: 9, Size: 9
### Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index: 9, Size: 9
### The error may exist in file [D:\eclipse-workspace\fashion-commerce-server\target\classes\mapper\productMapper.xml]
### The error may involve cohttp://m.ccommit.fashionserver.mapper.ProductMapper.getProductList
### The error occurred while handling results
### SQL: SELECT id, name, sale_quantity, price, category_id, like_count, sale_id, create_date, update_date FROM products WHERE 1 = 1 AND category_id = ? ORDER BY like_count DESC
### Cause: java.lang.IndexOutOfBoundsException: Index: 9, Size: 9] with root cause
java.lang.IndexOutOfBoundsException: Index: 9, Size: 9
검색창에 Cause: java.lang.IndexOutOfBoundsException: Index: 9, Size: 9 라고 입력하여 해결 방법을 찾아보았다.
다양한 방법들이 있었는데 해결이 되지 않았다. 그러다 DTO에 @Builder 어노테이션을 추가한게 생각이 났고 재검색하여 찾아본 결과 빌터 어노테이션 때문이 맞았다.
에러 수정 전 DTO
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Builder
에러 수정 후 DTO
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
자세한 설명은 다음에 추가.
[출처 및 참고]
@Builder, @All/NoArgsConstructor 제대로 알고 사용하자!
USE BUILDER ANNOTATION PROPERLY
velog.io