1. Mapper 간의 재사용을 통한 관계표현하기

Mapper xml에서 1:N관계를 표현하는 경우

보통 테이블 모듈별로 Mapper를 만들게되면 1:N관계를 표현 시 Join을 통해 구현하게된다.

Join을 할 경우 Mapper마다 관계 대상의 정보까지 포함되어 구현되기때문에

관계를 맺으면 맺을수록 동일한 코드들이 늘어나서 정보변경 시 관계맺은 Mapper 모두 변경해야하는 참사가 일어난다.

이를해결하기 위해서는 

먼저 resultMap을 통해 association, collation을 사용해 관계를 맺어주고 속성 중 select 속성을 사용하여

Join 대신 관계를 맺고있는 Mapper의 select구문 id를 작성한다.

이렇게되면 각 Mapper별로 id값을 관리하고 관계만지정해줌으로써 변경에 매우 유연해지게 된다.

다만 resultMap의 단점이 컬럼 관리포인트가 나뉘기때문에 추가/변경 시 신경을 써야하는것은 잊지말자.

'framework > spring' 카테고리의 다른 글

스프링 DI 사용 시점  (0) 2020.03.31
Spring Junit 실행 시 Mapper 인식하지 못함  (0) 2020.03.24
Mybatis BATCH insert/update/delete 결과얻기  (0) 2020.03.22
디자인 패턴  (0) 2020.03.19
Spring 템플릿 활용하기  (0) 2020.03.12

+ Recent posts