mapUnderscoreToCamelCase

서현서현·2022년 8월 10일
0

Spring

목록 보기
15/31
post-thumbnail

xml에 작성한 쿼리는

<select id="listAll" resultType="MenuVO">
 	SELECT MENU_ID, MENU_NAME, MENU_PRICE, TO_CHAR(MENU_DATE,'YYYY/MM/DD'), MENU_TEXT, MENU_TYPE
	FROM MENU
	ORDER BY MENU_ID DESC  
</select>

컬럼명으로 결과가 도출되는데

@Data
@Alias("MenuVO")
public class MenuVO {
	
	// 일단 첨부파일은 나중에 보충하자...
	
	private String menuId;
	private String menuName;
	private Integer menuPrice;
	private String menuText;
	private String menuDate;
	private String menuType;
	private String menuImg;
	private String menuMaterial;
	
}

vo에 바인딩이 될까????? 컬럼명의 변수는 언더바를 두는 형식이고 vo의 변수는 카멜케이스인데????


해답은 configuration 설정파일에 있었다.

mapUnderscoreToCamelCase

위와같은 상황에서 자동으로 변환을 해준다.
전자정부 프레임워크의 경우 congifuration 파일에

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
	<settings>
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>
	
</configuration>

위와같이 작성해준다.

이렇게 하면 DB의 컬럼명은 스네이크, 자바의 필드는 카멜케이스여도 vo를 통해 값을 뽑아올 수 있다.

0개의 댓글