MyBatis CamelCaseMap 구현

jeonbang123·2023년 3월 18일
0

VO를 사용해서 받으면 옵션적용해서 camelcase를 적용할 수 있지만, resultType을 Map으로 하면 camelcase가 적용이 안된다.


변경전

1. Dependency 추가

<!--1.4. guava - MyBatis returnType Map CamelCase 적용 클래스 구현용 -->
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>31.1-jre</version>
</dependency>

2. CamelHashMap 구현

public class CamelHashMap extends LinkedHashMap {

    @Override
    public Object put(Object key, Object value) {
        return super.put(toLowerCamel((String) key), value);
    }

    private static String toLowerCamel(String key) {
        return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, key);
    }
}

구글에서 만든 구아바(guava) 사용해서 LowerCase로 변환

3. mapper 적용

<select id="getMembers2" resultType="CamelHashMap">
  /* MemberMapper.getMembers2 - 멤버 조회 */
  SELECT *
  FROM MEMBER
</select>

변경후

profile
Design Awesome Style Code

0개의 댓글