이번 장에서는 JPA에서 가장 중요한 연관관계를 학습합니다.
예제에서는 회원(Member), 게시글(Board), 댓글(Reply) 엔티티 클래스를 생성하고 처리합니다.
이 과정에서 JPA에서 사용하는 N:1 연관관계를 실습하고 이를 통해 화면의 댓글 수, 게시글 작성자를 표시하는 등의 작업을 어떻게 처리해야 하는지 설명합니다.
SpringMVC와 관련해서는 JSON 데이터 송∙수신할 수 있는 @RestController를 적극 활용해 Ajax를 이용하는 방식을 학습합니다.
Eager : 즉시 로딩
Lazy : 지연 로딩
@Transactional, 기본적으로 필요할 때 데이터베이스와 재연결
지연 로딩을 기본으로하고, 상황에 맞게 필요한 방법 찾기
@ToString()
주의할 것@ToString
은 해당 클래스의 모든 멤버 변수 출력된다.exclude
속성 사용할 것@Query("select b, w from Board b left join b.writer w where b.bno =: bno")
Object getBoardWithWriter(@Param("bno") Long bno);
@Query("select b, r from Board b left join Reply r on r.board = b where b.bno =: bno)
List<Object[]> getBoardWithReply(@Param("bno") Long bno);