8. How to Create Repository and Service Classes in Spring Boot with JpaRepository

The following demonstrates creating a repository class inside the service package.

The repository interface extends JpaRepository and is annotated with @Repository

The service interface includes the findById method.

Below is the BookRepository.java interface.

package com.codersstash.book_details.repository;

import com.codersstash.book_details.entity.Book;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends JpaRepository<Book, Integer> {
    public  Book findById(int book_id) ;

}

The service class is annotated with @Service.

The service class uses field injection with the @Autowired annotation to inject the repository.

The service class implements functions such as savegetById(id)getAllData(), and deleteById(id).

Below is the implementation of the BookService.java class.

BookService.java

package com.codersstash.book_details.service;

import com.codersstash.book_details.entity.Book;
import com.codersstash.book_details.repository.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookService {
    @Autowired
    private BookRepository bookRepository;
    public Book saveBook(Book book){
        return bookRepository.save(book);
    }
    public Book getBookById(int book_id){
        return bookRepository.findById(book_id);
    }
    public List<Book> getAllBooks(){
        return bookRepository.findAll();
    }
    public void deleteBook(int id){
        bookRepository.deleteById(id);
    }
}

You can find the related GitHub repository branch here : book-details-repository

Leave a Reply

Your email address will not be published. Required fields are marked *