[mybatis] <association>, <collection>

null·2023년 3월 17일
0

[nmBoard] 게시판

목록 보기
7/9
	<resultMap type="board" id="boardMap">
		<id column="BOARDNO" property="no" />
		<result column="TITLE" property="title" />
		<result column="CONTENT" property="content" />
		<result column="USERNO" property="userNo" />

		<!-- 조인 결과에서 같은 게시글에 대해 한 개의 회원 데이터를 담을 경우 -->
		<!-- association : 1:1 관계의 테이블을 조인할 때 사용 (조인 객체): 1개의 게시글에 1명의 user만 존재 -->
		<association property="writer" javaType="User">
			<id column="USERNO" property="userNo" />
			<result column="ID" property="id" />
			<result column="PASSWORD" property="password" />
			<result column="NAME" property="name" />
		</association>

		<!-- 조인 결과에서 같은 게시글에 대해 여러 개의 첨부 파일 데이터를 담을 경우 -->
		<!-- collection : 1:M 관계의 테이블을 조인할 때 사용 (조인 객체): 1개의 게시글의 여러개의 첨부파일 존재 -->
		<collection property="attachedFiles" ofType="attachedFile">
			<id column="ATTACHEDFILENO" property="attachedFileNo" />
			<result column="FILEPATH" property="filepath" />
		</collection>
	</resultMap>

association

  • 1:1 관계의 테이블을 조인할 때 사용 ex. 1개의 게시글(board) : 1명의 회원(User) 존재

  • <'id'> 태그를 이용하여 조인 대상 테이블의 기본키와 매핑

  • 중복 데이터가 발생하거나, 복잡한 쿼리문이 될 수도 있는 join 연산 수행 대신 사용하여
    객체 간의 관계를 이용하여 간편하게 조회 가능

collection

  • 1:N 관계의 테이블을 조인할 때 사용 ex. 1개의 게시글 : 여러개의 첨부파일 존재

  • <'id'> 태그를 이용하여 '1'에 해당하는 테이블과 'N'에 해당되는 테이블을 조인한 결과를
    List,Set 등의 collection 형태로 매핑

  • ofType: 매핑 될 클래스를 지정 ex. AttachedFile

0개의 댓글