ReplyRepositoryTest > SPRING_DATA_JPA

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

SPRING_DATA_JPA

ReplyRepositoryTest

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 185회 작성일 24-06-20 16:03

본문

package web.repository;


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 org.springframework.transaction.annotation.Transactional;


import lombok.extern.log4j.Log4j2;

import web.domain.Board;

import web.domain.Reply;


@SpringBootTest

@Log4j2

public class ReplyRepositoryTest {


@Autowired

private ReplyRepository replyRepository;


//@Test

public void testInsert() {

//DB - board 테이블에 존재하는 bno 값

Long bno = 100L;


Board board = Board.builder().bno(bno).build();


Reply reply = Reply.builder()

.board(board)

.replyer("홍길동")

.replyText("두번째 댓글 내용이다.")

.build();


replyRepository.save(reply);

}


@Transactional //추가

@Test

public void testBoardReplys() {

Long bno = 100L;


Pageable pageable = PageRequest.of(0, 10, Sort.by("rno").descending());


Page<Reply> result = replyRepository.listOfBoard(bno, pageable);


result.getContent().forEach(reply -> {

log.info(reply);

});

}

}





[설명]
@Transactional을 추가 하지 않은 상황에서 실행을 하면 에러가 발생한다. 
에러 메시지가 발생하는 상황을 보면 reply 테이블에서 쿼리를 실행했지만, Board 객체를 같이 출력해야 하므로 다시 board 테이블에 쿼리를 추가로 실행해야만 하는 상황이다.
다시 한번 데이터베이스를 연결해야만 하는 한다면, 강제로 이를 실행하기 위해 테스트 코드에 @Transactional을 추가한다.

콘솔창에서 확인하자.

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

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

 

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

접속자집계

오늘
309
어제
199
최대
10,760
전체
275,338
Copyright © dancePKT . All rights reserved.