Initial Setup

Get Spring Data JPA installed and create your first repository. This guide walks you through setting up Spring Data JPA for database operations in Java.

🎯 What You’ll Accomplish

By the end of this tutorial, you’ll have:

  • βœ… Spring Boot project with Spring Data JPA
  • βœ… Database connection configured
  • βœ… Your first entity and repository created
  • βœ… Basic CRUD operations working

πŸ“‹ Prerequisites

  • Java 17 or later installed
  • Maven or Gradle installed
  • Basic familiarity with Java and Spring Boot

πŸ’Ύ Step 1: Create Spring Boot Project

Visit start.spring.io and create a project with:

  • Spring Boot 3.x
  • Dependencies: Spring Data JPA, H2 Database (for testing), PostgreSQL Driver

Or use command line:

curl https://start.spring.io/starter.zip \
  -d dependencies=data-jpa,h2,postgresql \
  -d bootVersion=3.2.0 \
  -d javaVersion=17 \
  -o spring-jpa-demo.zip
unzip spring-jpa-demo.zip
cd spring-jpa-demo

βš™οΈ Step 2: Configure Database

Edit src/main/resources/application.properties:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true

πŸ“¦ Step 3: Create Your First Entity

Create src/main/java/com/example/demo/User.java:

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false, unique = true)
    private String email;

    private Integer age;

    // Getters and setters
}

πŸ”§ Step 4: Create Repository

Create src/main/java/com/example/demo/UserRepository.java:

public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByEmail(String email);
    List<User> findByAgeGreaterThan(Integer age);
}

πŸš€ Step 5: Test CRUD Operations

Create a test or command line runner:

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {

    @Autowired
    private UserRepository userRepository;

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void run(String... args) {
        // Create
        User user = new User();
        user.setName("Alice");
        user.setEmail("alice@example.com");
        user.setAge(30);
        userRepository.save(user);

        // Read
        List<User> users = userRepository.findAll();
        users.forEach(u -> System.out.println(u.getName()));
    }
}

βœ… Verification Checklist

Before moving forward, verify:

  • Spring Boot project created with Spring Data JPA
  • Database connection configured
  • Entity and repository created
  • CRUD operations work

πŸŽ‰ You’re Done!

You’ve successfully set up Spring Data JPA and created your first repository. You’re ready to work with database operations.

πŸ“š What’s Next?

Quick learner: Spring Data JPA Quick Start

Code-first learner: Spring Data JPA By Example

Last updated