[ MyBatis3 ] SQL Map XML 파일(resultMap-3)

* collection

<collection property="posts" ofType="domain.blog.Post">

<id property = "id" column="post_id" />

<result property ="subject" column="post_subject" />

</collection>


- collection 요소는 관계를 파악하기 위해 작동한다.

- ofType : 자바빈 프로퍼티 타입과 collection 의 타입을 구분하기 위해 필요하다.

>> associations과 collections에서 내포의 단계혹은 조합에는 제한이 없다.


* discriminator


<discriminator javaType="int" column="draft">

<case vaule="1" resultType="DraftPost" />

</discriminator>


- 종종 하나의 데이터베이스 쿼리는 많고 다양한 데이터 타입의 결과를 리턴한다.

이 요소는 클래스상속관계를 포함하여 이러한 사항을 위해 고려됨

- discriminator 정의는 column 과 javaType 속성을 명시한다.

column은 MyBatis로 하여금 비교할 값을 찾을 것이다. javaType은 동일성 테스트와 같은 것을 실행하기 위해 필요

- 각각의 레코드를 가져와 draft값과 비교한다. 만약 비교값과 같은 경우가 생기면 명시된 resultMap을 사용 없다면 무시된다.