IT/Spring

Mapper Error (@ResultMap)

iamhyeon 2024. 12. 4. 15:57

[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