* resultMap에 매핑할때 인자로 리스트가 있는 경우 Collection이용! *
<회원 정보 : MemberVO>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package org.zerock.domain;
import java.util.Date;
import java.util.List;
import lombok.Data;
@Data
public class MemberVO {
private String userid;
private String userpw;
private String username;
private boolean enabled;
private Date regDate;
private Date updateDate;
private List<AuthVO> authList; // 회원 하나가 여러개의 권한을 가질 수 있기 때문
}
|
cs |
<회원 권한 : AuthVO>
1
2
3
4
5
6
7
8
9
10
11
|
package org.zerock.domain;
import lombok.Data;
@Data
public class AuthVO {
private String userid;
private String auth;
}
|
cs |
한 회원이 여러개의 권한을 가질 수 있으니 AuthVO List를 인스턴스 변수로 가짐.
<Mapper.xml>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.zerock.mapper.MemberMapper">
<!-- 한방에 1:N의 관계를 해결해 줄 수 있다. -->
<resultMap type="org.zerock.domain.MemberVO" id="memberMap">
<id property="userid" column="userid" />
<result property="userid" column="userid" />
<result property="userpw" column="userpw" />
<result property="username" column="username" />
<result property="regDate" column="regdate" />
<result property="updateDate" column="updatedate" />
<collection property="authList" resultMap="authMap">
</collection>
</resultMap>
<resultMap type="org.zerock.domain.AuthVO" id="authMap">
<result property="userid" column="userid" />
<result property="auth" column="auth" />
</resultMap>
<select id="getMember" resultMap="memberMap">
SELECT MEM.USERID, USERPW,USERNAME, ENABLED,REGDATE,UPDATEDATE, AUTH
FROM TBL_MEMBER MEM LEFT OUTER JOIN TBL_AUTH AUTH
ON MEM.USERID = AUTH.USERID
WHERE MEM.USERID=#{userid}
</select>
</mapper>
|
cs |
userid를 이용하여 select문으로 member정보를 가져올 때 result를 memberMap으로 설정.
memberMap은 Type이 MemberVO로 되어있고 그 안에 List<AuthVO>는 Collection(property, resultMap)으로 지정해줌. 그리고 AuthVO resultMap을 또 만들어 줌.
여기서 memberMap의 <id property>는 그냥 '얘가 pk에요'라고 알려주는 용도.
컬럼이 두개 나오는 건 아님!
'Tech > Web' 카테고리의 다른 글
ORM과 JPA (0) | 2019.11.25 |
---|---|
[Spring] UriComponentsBuilder의 사용 (0) | 2019.11.22 |
Spring-Web-Security (0) | 2019.11.15 |
[Spring] Spring 기본세팅 & Setting Test (1) | 2019.11.07 |
[Spring] Spring 구성요소와 동작원리 (0) | 2019.11.07 |
댓글