SQL, JOIN , return collection타입

채상혁·2022년 2월 17일
1

Spring

목록 보기
14/18

서로 다른 테이블의 정보를 얻어오기 위한 JOIN 문법 사용, sql 문에서 collection 타입을 리턴할때 추가해야 할점.

  SELECT userId,
            userName,
            userPhone1,
            userPhone2,
            userEmail1,
            userEmail2,
            addrBasic,
            addrDetail,
            addrZipNum,
            f.bno,
            f.title,
            f.regDate
      FROM users u LEFT OUTER JOIN freeboard f
      ON u.userId = f.writer
      WHERE u.userId = #{userId}
      ORDER BY f.bno DESC

처음 이 mappers.xml 작성할 때는 resultMap이 아니라 resultType을
"com.spring.myweb.command.UserVO" 작성해야 한다고 생각했다.
하지만 UserVo에 있는 멤버변수가 FreeBoardVO 타입의 리스트이기 때문에
resultMap을 선언하여야 한다.

JOIN을 사용할 떄는 DB 컬럼 명과 VO의 멤버변수명이 같아도 collection 타입 일때는 collection 태그를 이용합니다.
collection 타입의 변수에 값을 매길 때는 어떤 객체로 포장해서 넣을 지를 새로운 resultMap으로 선언해야 합니다.

0개의 댓글