게시글Board
은 회원Member
과 ManyToOne
구조를 갖고있다
게시글 조회시 회원의 정보를 꺼낼때 resultMap
을 사용하여 매핑관계의 데이터를 가져왔다
공식문서 참고 - 관계를 위한 내포된 결과(Nested Results)
Association과 Collection을 이용하면 훨씬 편리하고 효율적으로 코드를 작성할 수 있다
Association은 has one 관계를 설정할 수 있다
Board
게시글 입장에서는 Member
작성자(회원)는 하나만 존재한다
따라서, MyBatis 내 resultMap 내부에서 association을 활용해 데이터를 가져올 수 있다
Collection은 has many 관계를 설정할 수 있다
즉, Member
- Board
는 1 - N
관계이다
위와 달리 Member
작성자는 하나인데 Board
게시글은 여러 개가 존재한다
출력 결과 BOARD의 하위 엔티티 MEMBER가 출력되지 않았다
하지만 BOARD 하위의 MEMBER의 USERID를 꺼내보니 값이 출력되는것을 확인할 수 있었다
BOARD 엔티티에 MEMBER 매핑을 확인 해보니 @ToString.Exclude
어노테이션이 있는걸 확인했다
해당 어노테이션을 제거하니 MEMBER가 출력되는것을 확인할 수 있었다
mybatis에서는 하위 엔티티의 id만 출력이 가능하다고 한다
id를 제외하고 추가적인 정보가 필요한 경우는 JOIN을 사용하여 데이터를 추가적으로 가져와 사용해야한다