DIGITAL GURU
Java Roadmap Portfolio

CRUD Operations with Spring Data JPA

Create, Read, Update, and Delete database operations explained with full code.

Anuj Kumar Singh Written by Anuj Kumar Singh (Lead Engineer, 13+ yrs exp) 5 min read Verified Spring Boot 3+ Guide
3D Architecture Visualizer

Real-World Analogy: Digital Library Catalog

Imagine managing a library catalog system. You need to Create (add new books), Read (search books by ISBN), Update (change book pricing), and Delete (remove lost books). Spring Data JPA provides instant built-in methods for all four operations!

Built-in Spring Data JPA CRUD Methods

By extending JpaRepository<Product, Long>, Spring Data JPA gives you out-of-the-box SQL operations:

Operation JpaRepository Method Generated SQL Action
Create repository.save(entity) INSERT INTO products (...) VALUES (...)
Read (One) repository.findById(id) SELECT * FROM products WHERE id = ?
Read (All) repository.findAll() SELECT * FROM products
Update repository.save(entity) UPDATE products SET ... WHERE id = ?
Delete repository.deleteById(id) DELETE FROM products WHERE id = ?

Complete Beginner Code Example:

ProductService.java
package com.anujsingh.digitalguru.service;

import org.springframework.stereotype.Service;
import com.anujsingh.digitalguru.model.Product;
import com.anujsingh.digitalguru.repository.ProductRepository;
import java.util.List;

@Service
public class ProductService {

    private final ProductRepository productRepository;

    public ProductService(ProductRepository productRepository) {
        this.productRepository = productRepository;
    }

    // 1. CREATE / UPDATE
    public Product saveProduct(Product product) {
        return productRepository.save(product);
    }

    // 2. READ ONE BY ID
    public Product getProductById(Long id) {
        return productRepository.findById(id)
            .orElseThrow(() -> new RuntimeException("Product not found with id: " + id));
    }

    // 3. READ ALL
    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }

    // 4. DELETE
    public void deleteProduct(Long id) {
        if (!productRepository.existsById(id)) {
            throw new RuntimeException("Cannot delete: Product does not exist");
        }
        productRepository.deleteById(id);
    }
}