처음에 이 관계를 몰랐는데..
좀 가지고 놀다보니까.. 아~ 하는 부분이 있어서 정리..
테스트를 위한 기본 셋팅
1. Dual.java
2.DualMapper.xml
3. DualMapper.java
mapper xml을 보면 namespace가 있는데 이 namespace를 mapper interface의 이름과 맞춰주면 xml의 설정과 인터페이스에 선언한 설정을 같이 사용 할 수 있게 된다. 그리고 제약도 같이 적용이 된다.
즉 위의 상황에서 DualMapper의 selectAll2 메서드를 selectAll로 변경하게 되면 이미 mapper.xml에서는 selectAll이라는 id가
존재하기 때문에 에러가 발생한다.
결국, Mapper Interface의 메서드는 id로 @select 어노테이션은 select구문으로, @ResultMap 어노테이션은
mapper.xml에서 설정한 resultmap의 id를 가르킬 수 있게 된다.
위와 같이 설정한 경우 아래의 구문은 모두 사용가능하다.