BoardRepositoryTest ( read ) > SPRING_DATA_JPA

본문 바로가기
사이트 내 전체검색

SPRING_DATA_JPA

BoardRepositoryTest ( read )

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 69회 작성일 24-06-28 09:47

본문

package web.repository;


import java.util.Optional;

import java.util.UUID;

import java.util.stream.IntStream;


import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.data.domain.Page;

import org.springframework.data.domain.PageRequest;

import org.springframework.data.domain.Pageable;

import org.springframework.data.domain.Sort;


import jakarta.transaction.Transactional;

import lombok.extern.log4j.Log4j2;

import web.domain.Board;

import web.domain.BoardImage;

import web.dto.BoardListReplyCountDTO;


@SpringBootTest

@Log4j2

public class BoardRepositoryTest {


@Autowired

private BoardRepository boardRepository;


@Test

@Transactional //Board 에서 fetch = FetchType.LAZY 일 경우 추가

public void testReadWithImages() {

Optional<Board> result = boardRepository.findById(1L); //존재하는 bno 값 매칭


Board board= result.orElseThrow();


log.info(board);

log.info("=======================");

for(BoardImage boardImage : board.getImageSet()) { //첨부 이미지 목록

log.info(boardImage);

}

}

...

...

...

}





[설명]

테스트를 실행하면 에러가 발생하게 된다.

01. Board 클래스 - @OneToMany(

mappedBy = "board", //BoardImage의 board변수

cascade = {CascadeType.ALL},

fetch = FetchType.EAGER //즉시 로딩

)

[콘솔 확인]

select 구문이 한번 실행한다. ( board , board_image - join 처리 )

02. 위 예제와 같이 @Transactional을 추가

[콘솔 확인]

select 구문이 각각 실행한다. ( board , board_image )

03@EntityGraph를 이용하는 방법

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

공지사항
자유게시판
질문답변
1:1문의

 

별명 : 터푸가위
주소 : 부산시 동래구 명장로20번길 90
대표 : 박규태
메일 : dancepkt@******.com

접속자집계

오늘
121
어제
260
최대
10,760
전체
268,754
Copyright © dancePKT . All rights reserved.