리포지토리 바꿈
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);
}