[SpringBoot] JpaRepository save, findAll, findById, delete 기능

Posted by nkjok
2025. 2. 8. 16:21 낙서장[1]/2. SpringBoot
반응형

JpaRepository 주요 기능

1. save

개념

  • 객체를 데이터베이스에 저장하거나, 이미 존재하는 엔티티 객체를 업데이트하는 데 사용됩니다.

용도

  • 새로운 엔티티를 데이터베이스에 등록할 때
  • 이미 존재하는 엔티티를 수정할 때

사용 방법

java
@PostMapping("/posts")
public Post createOrUpdatePost(@RequestBody Post post) {
    return postRepository.save(post);
}

2. findAll

개념

  • 데이터베이스에 저장된 모든 엔티티 객체를 조회합니다.

용도

  • 데이터베이스에 있는 모든 레코드를 가져올 때

사용 방법

java
@GetMapping("/posts")
public List<Post> getAllPosts() {
    return postRepository.findAll();
}

3. findById

개념

  • 주어진 ID로 데이터베이스에서 특정 엔티티 객체를 조회합니다.

용도

  • 특정 레코드를 ID로 조회할 때

사용 방법

java
@GetMapping("/posts/{id}")
public ResponseEntity<Post> getPostById(@PathVariable Long id) {
    Optional<Post> post = postRepository.findById(id);
    return post.map(ResponseEntity::ok)
               .orElseGet(() -> ResponseEntity.notFound().build());
}

4. delete

개념

  • 주어진 ID로 데이터베이스에서 특정 엔티티 객체를 삭제합니다.

용도

  • 특정 레코드를 삭제할 때

사용 방법

java
@DeleteMapping("/posts/{id}")
public ResponseEntity<Void> deletePost(@PathVariable Long id) {
    postRepository.deleteById(id);
    return ResponseEntity.noContent().build();
}

요약

  • save: 엔티티 객체를 저장하거나 업데이트
  • findAll: 모든 엔티티 객체를 조회
  • findById: 특정 ID로 엔티티 객체를 조회
  • delete: 특정 ID로 엔티티 객체를 삭제

JpaRepository는 위의 4가지 주요 기능을 자동으로 구현해주므로, 별도의 쿼리 작성 없이도 쉽게 사용할 수 있습니다.

반응형