What problem does it solve? Setting up a correct persistence layer in a Spring Boot service involves many subtle decisions — entity design, ID generation, locking, migrations, and transaction placement — that are easy to get wrong and expensive to fix later. This Skill encodes the proven conventions so every new service or aggregate follows the same durable-storage patterns. ## Core Features & Use Cases - Entity & Repository Conventions: Enforces application-assigned UUIDs, @Version optimistic locking, string-based enums, JPA auditing, and lazy fetching across all JPA entities. - Flyway Migration Discipline: Forward-only migrations, no Hibernate auto-DDL, strict naming, and Testcontainer-based migration tests on every commit. - Transaction & Query Patterns: Service-layer @Transactional boundaries, read-only hints, and the Specification pattern for composable queries instead of exploding derived-method names. - Use Case: When adding a new aggregate to an existing service, apply this Skill to generate the entity, repository, Flyway migration, and audited base classes following the standard layout. ## Quick Start Apply the persistence skill to scaffold the entity, repository, and Flyway migration for a new Document aggregate in this Spring Boot service.