베오
DCode
베오
전체 방문자
오늘
어제
  • 분류 전체보기 (218)
    • 공지사항 (1)
    • 잡설 (1)
    • Programming (33)
      • [C] (1)
      • [Java] (4)
      • [Python] (2)
      • [Android] (2)
      • [Network] (0)
      • [Operation System] (2)
      • [Spring Boot] (22)
      • [Docker] (0)
    • Algorithm (31)
      • 자료구조 (2)
      • 알고리즘 (Java) (14)
      • 알고리즘 (기초) (15)
    • Coding Test (131)
      • BOJ (131)
      • Algospat (0)
    • 이론적인거 (14)
      • 보안 (5)
      • 오류 해결 (2)
      • 디자인 패턴 (5)
      • 네트워크 (1)
      • 기타 (1)
    • 최신기술 (4)
      • 블록체인 (1)
    • [Project] (1)

블로그 메뉴

  • 🐈‍⬛ GitHub
  • 📫 방명록
  • 🔖 태그

공지사항

인기 글

티스토리

hELLO · Designed By 정상우.
베오

DCode

Programming/[Spring Boot]

JpaRepository getById, findById

2023. 3. 12. 22:39

SpringBoot에서 DB 작업을 도와주는 JPA 에서 JpaRepository 라는 interface를 지원해준다. 이 메소드 중 getById, findById의 차이를 살펴보자

getById

실제 객체를 반환한다.

다음 코드를 살펴보자

public Product selectProduct(Long number) {
        Product selectedProduct = productRepository.getById(number);

        return selectedProduct;
    }

number를 Id로 하여 Id기반으로 데이터를 찾아내는 메소드이다.

반환

실제로 반환되는 것은 Product 객체이다.

데이터가 없는 경우

EntityNotFoundException 예외가 발생한다.


findById

Optional 객체 반환한다.

다음 코드 중 볼드체로 된 코드를 살펴보자

@Override
    public Product updateProductName(Long number, String name) throws Exception {
        Optional<Product> selectedProduct = productRepository.findById(number);

        Product updatedProduct;
        if (selectedProduct.isPresent()) {
            Product product = selectedProduct.get();

            product.setName(name);
            product.setUpdatedAt(LocalDateTime.now());

            updatedProduct = productRepository.save(product);
        } else {
            throw new Exception();
        }

        return updatedProduct;
    }

반환

findById 메소드를 호출하면 Optional이라는 객체를 반환한다.

isPresent() 메소드를 이용하여 null인지 판단하고,

이를 get() 메소드를 이용하여 객체를 얻는다.

데이터가 없는 경우

Optional.isPresent() 값이 false이다.



Uploaded by N2T

'Programming > [Spring Boot]' 카테고리의 다른 글

Entity 관련 Annotation  (0) 2023.03.12
Lombok  (0) 2023.03.12
DB 관련 용어  (1) 2023.02.01
Swagger를 활용한 REST API 명세 문서화  (0) 2023.01.25
PUT/DELETE API 만들기  (1) 2023.01.21
    'Programming/[Spring Boot]' 카테고리의 다른 글
    • Entity 관련 Annotation
    • Lombok
    • DB 관련 용어
    • Swagger를 활용한 REST API 명세 문서화
    베오
    베오

    티스토리툴바