resultList 안에 정렬 대상인 '주문일', '주문번호', '상품ID' 세 개의 이미 정렬할 값들이 들어있다.
orderDate 주문일
orderNo 주문번호
productId 상품ID
정렬
Function<CustomJdbMap, String> orderDateComparator = m -> (String)m.get("orderDate");
Function<CustomJdbMap, String> orderNoComparator = m -> (String)m.get("orderNo");
Function<CustomJdbMap, String> productIdComparator = m -> (String)m.get("productId");
resultList.stream()
.sorted(Comparator.comparing(orderDateComparator).reversed() // reversed (= desc)
.thenComparing(orderNoComparator)
.thenComparing(productIdComparator)
).collect(Collect(Collectors.toList());
작업하던 중 발생한 에러
java.math.BigDecimal cannot be cast to java.lang.Integer
- 해결방법
Integer 대신 Long을 넣어봤지만 같은 에러가 발생해서
String.valuOf로 형변환하였더니 해결되었다.
Function<CustomJdbcMap, Integer> productIdComparator
= m -> Integer.parseInt(String.valueOf(m.get("productId")));
'IT > JAVA' 카테고리의 다른 글
Object.assign() 객체 복사 (0) | 2023.04.19 |
---|