반응형

// Developer · Debugging Reports

뉴스도 디버깅이 필요해

마주친 오류를 재현하고, 원인을 추적하고, 기록합니다. Java · Spring · DB · 실무 트러블슈팅.

debug — today.log
$ debug --trace "오늘의 뉴스"
> 헤드라인 파싱 중...
> 원인 추적: 근거 누락 · 출처 불명
> 패치 적용: 사실 확인 + 출처 보강
✓ RESOLVED
TOTAL
TODAY
YESTERDAY

Categories

뉴스도 디버깅이 필요해

resultMap 3

MyBatis resultType resultMap 차이, JOIN과 1:N 매핑에서 선택 기준

MyBatis에서 단순 조회는 resultType으로 충분해 보이지만, JOIN을 붙인 순간 필드가 null로 들어오거나 같은 부모 객체가 여러 번 생기는 문제가 나온다. 이때 먼저 확인할 것은 조회 결과 구조가 단순 객체인지, 중첩 객체나 리스트인지다.결론부터 말하면 단일 테이블의 평평한 결과는 resultType, 컬럼명이 다르거나 JOIN 결과를 객체 안 객체 또는 리스트로 묶어야 하면 resultMap을 쓰는 편이 맞다. 특히 1:N 조회에서는 collection과 id 태그를 제대로 잡지 않으면 중복 행을 객체 구조로 묶기 어렵다.핵심 결론: resultType은 자동 매핑이고, resultMap은 결과를 어떻게 객체로 조립할지 직접 정의하는 매핑 설계도다.확인 순서: 단일 테이블인가 → 컬럼명..

웹개발/Mybatis 2026.07.09

MyBatis mybatis-config.xml Mapper XML 차이, 무엇을 어디에 써야 할까

Mapper 인터페이스는 있는데 SQL을 못 찾거나 resultType 필드가 null이면, 먼저 mybatis-config.xml과 Mapper XML의 책임부터 나눠야 한다. 파일 역할을 구분해야 설정 위치와 오류 원인을 빠르게 좁힐 수 있다.핵심은 두 XML의 책임을 먼저 나누는 것이다. mybatis-config.xml은 전체 동작 기준을 정하는 파일이고, UserMapper.xml 같은 Mapper XML은 실제 SQL과 결과 매핑을 담는 파일이다. 전역 설정은 mybatis-config.xml에 두고, SQL 문장과 resultMap은 Mapper XML에 둔다고 잡으면 대부분의 설정 흐름이 정리된다. Spring MyBatis에서는 여기에 SqlSessionFactoryBean의 config..

웹개발/Mybatis 2026.07.09

MyBatis resultMap과 resultType 차이 실무 예제로 정리

resultType과 resultMap, 무엇이 다른가MyBatis로 조회 쿼리를 작성하다 보면 결과를 어디에 담을지 지정해야 한다. 이때 쓰는 게 resultType과 resultMap이다. 둘 다 SELECT 결과를 자바 객체로 매핑한다는 점은 같지만, 매핑을 자동으로 맡기느냐 직접 정의하느냐에서 갈린다. 이 차이를 모르면 "분명 쿼리는 맞는데 일부 필드가 null로 들어오는" 상황에서 한참 헤매게 된다. MyBatis resultMap resultType 차이를 실무 기준으로 정리한다.간단히 말하면 resultType은 "결과를 이 타입에 알아서 담아라", resultMap은 "이 컬럼은 이 필드에 이렇게 담아라"를 직접 적어 주는 방식이다.차이 비교표 구분 result..

웹개발/Mybatis 2026.06.25
반응형