3. Spring JPA 데이터 조회(findById) 테스트
- 📚 Spring/Spring JPA 실습
- 2020. 6. 8. 17:11
-
스프링 Data JPA는 기본적으로 Hibernate라는 JPA 구현체를 사용한다.
-
Hibernate는 내부적으로 지정되는 DB에 맞게 SQL문을 생성하는 Dialect(방언)이 존재한다
-
Dialect는 Hibernate가 다양한 데이터베이스를 처리하기 위해 각 데이터베이스마다 다른 SQL문법을 처리하기 위해 존재하는 것이다.
-
JPA를 통해 호출하면 설정된 데이터베이스에 맞게 SQL문이 생성되는데 이 역할을 하는 존재를 Dialect라고 한다.
-
내부적으로는 OracleDialect, MySQLDialect 같은 클래스들이 다수 존재한다.
-
참고로 application.properties에 데이터베이스의 종류를 지정하면 기본적으로 해당 데이터베이스에 맞는 Dialect가 지정되지만 특정 버전을 명시해 줄 수도 있다.
데이터 조회 테스트 코드
package com.kyhslam;
import java.util.Optional;
import java.util.stream.Stream;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.kyhslam.domain.Board;
import com.kyhslam.persistence.BoardRepository;
@RunWith(SpringRunner.class)
@SpringBootTest
public class BoardRepositoryTests {
@Autowired
private BoardRepository boardRepo;
@Test
public void testRead() {
// 1번 방법
Optional<Board> boardOptional = boardRepo.findById(1L);
Board board = boardOptional.get();
// 2번 방법
// Board board = boardRepo.findById(1L).get();
System.out.println(board);
System.out.println(board.getContent());
System.out.println(board.getTitle());
System.out.println(board.getWriter());
}
}
참고로 스프링부트 2.X 버전부터 findOne()이 없어지고 findById()가 추가되었다.
자세한 내용은 아래 참조
테스트 코드를 실행 결과
'📚 Spring > Spring JPA 실습' 카테고리의 다른 글
6. Spring Data JPA : 데이터 조회 페이징 (Pageable) (0) | 2020.06.15 |
---|---|
5. Spring Data JPA : 데이터 조회 (쿼리 메소드) (0) | 2020.06.09 |
4. Spring DATA JPA 데이터 수정 및 삭제 (0) | 2020.06.09 |
2. Spring JPA isnert 테스트 (0) | 2020.06.08 |
1. Springboot JPA Oracle 연동 설정 (0) | 2020.06.05 |