3. Spring JPA 데이터 조회(findById) 테스트

  • 스프링 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()가 추가되었다.

자세한 내용은 아래 참조

https://www.it-swarm.dev/ko/java/spring-data-jpa-findone-%EC%9D%B4-%EC%98%B5%EC%85%98%EC%9C%BC%EB%A1%9C-%EB%B3%80%EA%B2%BD%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%B4%EA%B2%83%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/837633695/

 

java — Spring Data JPA findOne ()이 옵션으로 변경되었습니다. 이것을 사용하는 방법은 무엇입니까?

실제로 최신 버전의 Spring Data에서 findOne은 선택 사항을 반환합니다. Optional에서 객체를 검색하려면 Optional에서 get ()을 사용하면됩니다. 우선, 리포지토리는 옵션을 서비스에 반환해야하며,이 옵�

www.it-swarm.dev

 

 

테스트 코드를 실행 결과

댓글

Designed by JB FACTORY