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 |