framework/spring

Mybatis 재사용 코딩하기

datajoy 2020. 3. 23. 22:57

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

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

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

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

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

이를해결하기 위해서는 

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

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

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

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