두리공장
Mybatis 에서 model 에서 innerClass 를 사용하려면?? 본문
필요에 따라서는 VO를 계속 만들지 않고 innerClass를 사용하는 경우가 있다.
innerClass 는 아래의 형태와 같다.
@Data
public class CommonVO {
@Getter
@Setter
public static class BOOK {
private String column1;
private String column2;
private String column3;
private String column4;
}
}
그런데, mybatis에서 이러한 모양의 모델을 불러와야 할 경우에, alias가 안먹는 경우가 있다.
이때에는 아래와 같이 정의해 준다.
<typeAlias type="com.xxx.vo.CommonVO$BOOK" alias="CommonVO$BOOK" />
이렇게 하면, mapper에서 아래와 같이 사용할 수 있다.
<select id="getBOOK" parameterType="CommonVO$BOOK" resultType="CommonVO$BOOK">
여담으로, RestAPI로 사용할 경우, 필드값에 null이 있을 경우 json에서 보이지 않는 경우도 있다. 하지만, 빈 값으로라도 보이게 하려면 아래와 같이 셋팅한다.
<settings>
<setting name="callSettersOnNulls" value="true"/>
<setting name="jdbcTypeForNull" value="VARCHAR" />
</settings>
'java' 카테고리의 다른 글
[spring batch] 스프링 부트 프로젝트에 스프링 배치 이식하기 (0) | 2022.07.18 |
---|---|
스프링 부트 프로젝트에서 OZ리포트 jar 라이브러리 사용시.. (0) | 2022.06.11 |
[Spring batch] Step 9 - 배치시작을 위한 config 및 h2 메모리DB구성, 그리고 itemprocessor 사용 (0) | 2022.06.11 |
spring job scheduler & shedLock 적용 (0) | 2022.06.09 |
[Spring & jQuery] 파일 및 Json 데이터 업로드 (file & json data) (0) | 2022.05.30 |