데이터와 MyBatis — 읽기 자료
"분명히 SELECT 했는데 객체에 데이터가 안 들어와요. 모두 null 이에요!"
DB 는 user_id (스네이크), 자바는 userId (카멜). 둘이 자동으로는 매핑 안 됨.
-- DB (일반 예시)
CREATE TABLE sample (
user_id VARCHAR(50), -- 스네이크
created_at TIMESTAMP
);
// 자바 VO
public class Sample {
private String userId; // 카멜
private LocalDateTime createdAt;
}
-- 결과: SELECT 해도 userId, createdAt 이 null
// 해법 1: AS 로 매핑
SELECT user_id AS userId, created_at AS createdAt FROM sample
// 해법 2: 글로벌 설정 (권장)
<!-- mybatis-config.xml -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
"분명히 SELECT 했는데 객체에 데이터가 안 들어와요. 모두 null 이에요!"
null 이 되는 함정을 만나면 어디를 의심할지 안다.