基於Java Persistant API, 提供簡單的關連式資料庫訪問方式。
可透過類別來表示table,自動生成SQL語句。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

@EntityScan

掃描當前package及所有子package的 @Entity class

import org.springframework.boot.autoconfigure.domain.EntityScan; @EntityScan(basePackages = "com.example.myapp") public class AppConfig { }

@EnableJpaRepositories

有繼承JpaRepository/CrudRepository的類都會被掃描/註冊成Spring Data JPA代理類, 他會被註冊為Bean.

@Entity

import jakarta.persistence.*; @Entity // 標註class是 JPA實體, 對應到資料庫表。 @Table(name = "users") //specify table name public class User { @Id // PK private Long id; @Column(nullable = false) // not full private String name; }

JpaRepository

Spring Data JPA 提供JpaRepository, 不用SQL進行CRUD

JpaRepository<T, ID>
/*
T (JPA實體)
ID (PK)
*/

繼承自PagingAndSortingRepository<T, ID>與CrudRepository<T, ID>
提供CRUD/Sort

import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { }