Mybatis
Database에서 select 절을 이용해 데이터를 조회할 대 mybatisdml resultMap을 이용하면 사용자가 정의한 Model 객체로 값을 직접 받아올 수 있다.
그렇다면 Model 객체안에 멤버면수로 또 다른 Model 객체가 있다면 해당 객체에는 값을 어떻게 넣을까?
Join (1:N)
문제 : 두 테이블을 조인 하는 과정 가운데 N개가 나오는 것이 아니라 1개만 나왔다.
상황 :
Dto
1 |
|
1 |
|
DB Table
AAADto
Column_Name | Datatype | PK | NN |
---|---|---|---|
a_id_1 | INT | check | check |
a_2 | VARCHAR(2048) | check |
BBBDto
Column_Name | Datatype | PK | NN |
---|---|---|---|
b_id_1 | INT | check | check |
b_id_2 | VARCHAR(100) | check | check |
b_3 | VARCHAR(2048) | check | check |
Mapper
1 |
|
여기서 collection
과 association
의 차이는 has one 관계 일때는 association
, has many 관계 일때는 collection
을 사용한다는 것을 알고가자 참고
해결 :
다양한 블로그를 참조했으나 해결이 되지 않았다.
이분들과 차이점은 두번째 테이블 (BBBDto) 의 primary 키가 2개였던 것 같다.
Mapper
1 |
|
문제가 됬던 bbbListMap에서 id값을 primary 키와 동일하게 2개 줬더니 예상대로 문제가 해결되었다.
결과 :
1 |
|
해결해야 할 문제 : select 에 포함되지 않은 내용도 나온다.