마이바티스 환경 설정 파일에 정의된 구성 요소 가운데 작동 방식을 결정할 때 사용되는 <settings /> 구성 요소가 있다.
<settings /> 구성 요소에 사용 가능한 속성을 사용하면, 사용자가 원하는 방향으로 마이바티스 작동 방식을 지정할 수 있다. 이러한 속성 중 autoMappingBehavior 속성과 mapUnderscoreToCamelCase 속성이 있다.
autoMappingBehavior 속성은 조회된 결과를 컬럼 명과 일치하는 자바 프로퍼티 사이에 자동 매핑 설정할지 여부를 지정한다. 기본 설정은 활성(true) 상태이다. 그리고 mapUnderscoreToCamelCase 속성은 언더바(_)로 구분되는 데이터베이스 컬럼 명과 낙타 표기 형식을 따른 자바 프로퍼티를 자동 매핑할지 여부를 지정한다. 기본 설정은 비활성(false) 상태이다.
일반적인 사용자들은 위해서 설명한 두 개의 속성이 비슷하다고 생각하고 별다른 생각없이 사용하는 것으로 추측된다. 하지만 두 개의 속성은 엄연히 다른 기능을 지원하는 셋팅 속성이다.
autoMappingBehavior 속성은 컬럼 명과 프로퍼티 명의 대소문자에 상관없이 자동 매핑하도록 지원하는 설정이며, mapUnderscoreToCamelCase 속성은 매핑 과정에 언더바(_) 속성을 제거하는 행위를 한다.
따라서 데이터베이스 컬럼 명에 별도의 알리아스(Alias, 오라클 기준 'AS' 키워드)를 사용하지 않고 자바빈즈 객체, 맵 객체에 낙타 표기 형식의 프로퍼티에 정상적으로 바인딩하기 위해서는 아래와 같이 mapUnderscoreToCameCase 속성 값을 'true'로 설정해야 한다.
<setting name="mapUnderscoreToCamelCase" value="true" />
'Java > mybatis' 카테고리의 다른 글
마이바티스에서 동적 쿼리를 생성하기 (0) | 2014.05.01 |
---|---|
마이바티스는 동적 쿼리문 생성에 사용되는 <if /> 구성 요소를 제공... (1) | 2014.05.01 |
마이바티스와 아이바티스 설정 비교 (0) | 2014.01.01 |
[javaModel, sqlMap]Generator 및 table 엘리먼트에서 설정 가능한 프로퍼티 (0) | 2014.01.01 |
SqlBuilder 의 중요 메소드 (0) | 2013.12.26 |