spring-boot-data-access
Installation
SKILL.md
Spring Boot Data Access
Priority: P0
Configure JPA and Spring Data
- Read-Only: Default to
@Transactional(readOnly = true)on Services to optimize DB resources. - Projections: Use
Java Recordsfor Read-Only query results. Avoid fetching full@Entityobjects when not necessary. - Pagination: ALWAYS use
PageableandSlice(orPage) to prevent loading massive datasets. - Spring Data: Prefer
JpaRepositoryandQuery methods. Use@Querywith JPQL for complex logic. Use Flyway or Liquibase for migrations; never useddl-auto=createin production.
See implementation examples for repository projections, EntityGraph, and transactional patterns.
Optimize Queries and Transactions
- N+1 Problem: Fix
N+1selects usingJOIN FETCH(JPQL) or@EntityGraph. - Open-In-View: Set
spring.jpa.open-in-view=falseinapplication.yaml. - Bulk Operations: Use
@Modifyingwith@Queryfor updates/deletes to bypass EntityManager overhead. - Connection Pool: Configure
HikariCPwith explicitmaximum-pool-size. Tune Hikari pool-size based on expected concurrent queries.