sql
<select id="selectBoardList"
parameterType="{package}.vos.PagingVO"
resultMap="boardMap">
SELECT
A.BOARD_NO AS `BOARDNO`
,A.BOARD_TITLE
,A.BOARD_CONTENT
,A.BOARD_WRITER
,A.BOARD_DATE
,A.BOARD_SRC
,A.BOARD_LINK
,A.BOARD_HITS
,A.BOARD_TYPE
,B.BOARD_FILE_NO
,B.BOARD_FILE_SAVE
,B.BOARD_FILE_ORG
,B.BOARD_FILE_SIZE
,B.BOARD_FILE_MIME
,B.BOARD_FILE_FANCY
FROM BOARD A
LEFT JOIN BOARDFILE B on A.BOARD_NO = B.BOARD_NO
WHERE A.BOARD_TYPE =
ORDER BY A.BOARD_NO desc
LIMIT
</select>
mybatis
as-is
<resultMap id="boardMap" type="BoardVO" autoMapping="true">
<id property="boardNo" column="BOARDNO"/>
<collection property="boardFileList"
ofType="{package}.vos.BoardFileVO"
autoMapping="true">
<id property="boardFileNo" column="BOARD_FILE_NO"/>
</collection>
</resultMap>
- 이렇게 하면 파일이 없는데도 자꾸 BOARDNO가 매핑되어서 파일리스트에 적어도 1개의 파일 객체가 생성되서 들어감
to-be
<resultMap id="boardMap" type="BoardVO" autoMapping="true">
<id property="boardNo" column="BOARDNO"/>
<collection property="boardFileList"
ofType="{package}.vos.BoardFileVO"
notNullColumn="board_file_no" autoMapping="true">
<id property="boardFileNo" column="BOARD_FILE_NO"/>
</collection>
</resultMap>
- notNullColumn 에
BOARD_FILE
테이블의 PK인 board_file_no
를 추가해주면 파일이 없으면 객체가 생성되지 않아 파일리스트의 사이즈도 0이 된다.
but...
- 아직도 왜 resultsettable에 column alias가 적용안되는지 모르겠음