리포지토리 바꿈

public Board findById(Integer id) {
    Board board = em.find(Board.class, id);

    return board;
}

이 쿼리를 사용하면 Board클래스를 명시해 두고 id를 명시해둿으니

select * from board_tb where id = 1; 이 쿼리가 자동으로 발동된다.

이 때 발동된 쿼리는 board클래스에 기본 생성자가 무조건 명시되어 있어야 한다.

조회 할 때 조회가 한번더 일어나는데 이 때 같은 쿼리를 날리면 조회가 두번 일어난다

그러면 캐싱이 된다.

캐싱 : 캐싱은 컴퓨터에서 데이터나 작업 결과를 임시로 저장하는 것을 말한다.

이렇게 저장된 정보는 나중에 동일한 요청이 있을 때 다시 계산하지 않고 빠르게 제공된다.

캐싱이 되면 쿼리를 한번더 날려보지 않게된다.

하지만 만약 1번이 아니라 2번을 넣어 준다면 다른 쿼리가 날아가기 때문에 조회가 두번 일어난다.

테스트

@Test
public void findById_test() {
    Integer id = 1;

    Board board = boardPersistRepository.findById(id);
    boardPersistRepository.findById(id);
}