[ERROR] 24-12-04 15:07:02 [PaymentServiceImpl:169] - 결제완료 데이터 조회에 실패했습니다.
org.apache.ibatis.binding.BindingException: Mapper method 'kr.co.sonystore.mappers.PaymentMapper.selectCountPayComplete' attempted to return null from a method with a primitive return type (int).
/**
* 결제완료된 데이터를 조회한다
* @param input - 조회할 결제내역 정보에 대한 모델 객체
* @return 조회된 데이터 수
*/
@Select(
"SELECT COUNT(*) FROM payments \n" +
"WHERE memberid = #{memberid} AND status='결제완료'"
)
@ResultMap("paymentMap")
public int selectCountPayComplete(Payment input);
select 문이라고 자연스럽게 @ResultMap 을 달았고
@ResultMap은
MyBatis에서 SQL 쿼리의 결과를 특정 맵핑의 설정을 재사용할 수 있도록 정의된 맵핑 설정을 참조한다
이를 통해 코드의 중복을 줄일 수 있다
- 재사용 가능: 여러 쿼리에서 동일한 매핑 설정을 재사용할 수 있다
- 중복 제거: 매핑 설정을 한 곳에 정의하고, 여러 쿼리에서 참조할 수 있으므로 코드 중복을 줄일 수 있다
- 유지보수 용이: 매핑 설정을 한 곳에서 관리할 수 있으므로, 변경이 필요할 때 한 곳만 수정하면 된다
<= SELECT COUNT(*) 쿼리는 단일 정수 값을 반환하므로, 결과 맵핑이 필요하지 않다.
반응형
'IT > Spring' 카테고리의 다른 글
| mybatis error ( @Options ) (0) | 2024.12.24 |
|---|---|
| Swagger (1) | 2024.12.24 |
| @ResponseBody (0) | 2024.12.03 |
| Spring MVC 다중삭제 (0) | 2024.11.27 |
| Error (0) | 2024.11.26 |