jpa 만들기
package shop.mtcoding.blog.board;
import org.springframework.data.jpa.repository.JpaRepository;
public interface BoardJAPRepository extends JpaRepository<Board, Integer> {
}
테스트 만들고 save 테스트하기
package shop.mtcoding.blog.board;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import shop.mtcoding.blog.user.User;
@DataJpaTest
public class BoardJAPRepositoryTest {
@Autowired
private BoardJAPRepository boardJAPRepository;
// save
@Test
public void save_test(){
// given
User sessionUser = User.builder().id(1).build();
Board board = Board.builder()
.title("제목5")
.content("내용5")
.user(sessionUser)
.build();
// when
boardJAPRepository.save(board);
// then
System.out.println("save_test : " + board.getId());
}
}

findById 테스트
@Test
public void findById_test(){
// given
int id = 1;
// when
// 존재하지 않는값이 온다면 널을 받는다.
Optional<Board> boardOp = boardJAPRepository.findById(id);
// 만약에 존재 한다면
if (boardOp.isPresent()) {
// 겟으로 받아옴.
Board board = boardOp.get();
System.out.println("findById_test : " + board.getTitle());
}
// then
}

레이지 전략이니 유저는 안나오고 보더만 나옴
findByIdJoinUser 만들기
package shop.mtcoding.blog.board;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
public interface BoardJAPRepository extends JpaRepository<Board, Integer> {
@Query("select b from Board b join fetch b.user u where b.id = :id")
Board findByIdJoinUser(@Param("id") int id);
}
findByIdJoinUser 테스트
@Test
public void findByIdJoinUser_test(){
// given
int id = 1;
// when
boardJAPRepository.findByIdJoinUser(id);
// then
}
