312-frameworks-spring-data-jdbc — Claude Code skill for Spring Data
A skill that applies Spring Data JDBC rules to Java records: entities, repositories, aggregate boundaries, transactions, N+1 avoidance.
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a claude-codeWhat 312-frameworks-spring-data-jdbc does
The skill gives your agent a rulebook for Spring Data JDBC code. It covers records as entity classes, @Table for name mismatches, @Embedded to inline value objects into the parent row, the repository pattern, and immutable updates through static factories and with* helpers. There is a section on save() semantics: INSERT or UPDATE follows from whether @Id is null.
Aggregate boundaries get their own treatment. One repository per aggregate root, Set for one-to-many inside the root, foreign keys between aggregates. Custom queries go through @Query with named parameters, transactions sit on services with @Transactional, and loading is meant to happen in a single query.
Before touching anything, the skill wants a compiling project. It runs ./mvnw compile or mvn compile first and stops dead if that fails. After the changes it runs ./mvnw clean verify or mvn clean verify. So on a broken build the agent will not rewrite your entities, which is the behaviour you want. Ambiguous requests get a clarifying question instead of a patch.
What it helps with
- convert entity classes to Java records
- split repositories along aggregate boundaries
- remove N+1 loading from relationships
- add optimistic locking and domain events
- audit custom queries for concatenated user input
Example prompts for the agent
- Review this Spring Data JDBC code and flag aggregate boundary problems
- Model this aggregate with Java records and show the with* update helpers
- Find repositories that load relationships one by one and fix the N+1
How to install 312-frameworks-spring-data-jdbc
1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a claude-code2Manually: put the files in place
~/.claude/skills/312-frameworks-spring-data-jdbc/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/312-frameworks-spring-data-jdbc/
1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a codex2Manually: put the files in place
.agents/skills/312-frameworks-spring-data-jdbc/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a cursor2Manually: put the files in place
.cursor/skills/312-frameworks-spring-data-jdbc/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install jabrena/plinth 312-frameworks-spring-data-jdbc2Manually: put the files in place
.github/skills/312-frameworks-spring-data-jdbc/SKILL.md1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a gemini-cli2Platform CLI
gemini skills install https://github.com/jabrena/plinth --path skills/312-frameworks-spring-data-jdbcManually: put the files in place
.devin/skills/312-frameworks-spring-data-jdbc/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about 312-frameworks-spring-data-jdbc
How do I install 312-frameworks-spring-data-jdbc in Claude?
Run npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a claude-code. The skill lands in ~/.claude/skills/312-frameworks-spring-data-jdbc/SKILL.md.
What does 312-frameworks-spring-data-jdbc do?
It applies Spring Data JDBC guidelines to Java records: entity design, repositories, immutable updates, aggregate boundaries, transaction management and single-query loading.
What does the skill need before it runs?
A project that compiles. It runs ./mvnw compile or mvn compile first and stops on failure, then runs ./mvnw clean verify or mvn clean verify after applying changes.
Source text
SKILL.md · Apache-2.0
--- name: 312-frameworks-spring-data-jdbc description: Use when you need to use Spring Data JDBC with Java records — including entity design with records, repository pattern, immutable updates, aggregate relationships, custom queries, transaction management, and avoiding N+1 problems. This should trigger for requests such as Review Java code for Spring Data JDBC; Apply best practices for Spring Data JDBC in Java code; Model Spring Data JDBC aggregates with Java records; Review Spring Data JDBC repositories and aggregate boundaries; Improve optimistic locking or domain events in Spring Data JDBC. Part of Plinth Toolkit license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.19.0 --- # Spring Data JDBC with Records Apply Spring Data JDBC guidelines with Java records. **What is covered in this Skill?** - Records for entity classes (immutable, constructor-friendly) - @Table for naming when record name differs from the table name - @Embedded to inline value-object columns into the parent row without a separate table - Repository pattern - Immutable updates with static factories for new rows and with* helpers for updates - save() INSERT vs UPDATE semantics driven by @Id nullability - Aggregate boundaries: one repository per aggregate root, Set for one-to-many inside the root, foreign keys between aggregates - Custom queries with @Query and named parameters (no user-input concatenation) - Transaction management (@Transactional on services; readOnly where appropriate) - Single query loading (N+1 avoidance) **Scope:** Apply recommendations based on the reference rules and good/bad code examples. ## Constraints Before applying any Spring Data JDBC changes, ensure the project compiles. If compilation fails, stop immediately. After applying improvements, run full verification. - **MANDATORY**: Run `./mvnw compile` or `mvn compile` before applying any change - **SAFETY**: If compilation fails, stop immediately - **VERIFY**: Run `./mvnw clean verify` or `mvn clean verify` after applying improvements - **BEFORE APPLYING**: Read the reference for detailed rules and good/bad patterns - **EDGE CASE**: If request scope is ambiguous, stop and ask a clarifying question before applying changes - **EDGE CASE**: If required inputs, files, or tooling are missing, report what is missing and ask whether to proceed with setup guidance ## When to use this skill - Review Java code for Spring Data JDBC - Apply best practices for Spring Data JDBC in Java code - Model Spring Data JDBC aggregates with Java records - Review Spring Data JDBC repositories and aggregate boundaries - Improve optimistic locking or domain events in Spring Data JDBC ## Workflow 1. **Read reference and assess project context** Read `references/312-frameworks-spring-data-jdbc.md` and inspect the current project setup before proposing changes. 2. **Gather scope and decide target improvements** Identify requested outcomes, constraints, and the minimum safe set of changes to apply. 3. **Apply framework-aligned changes** Implement or refactor configuration/code following the reference patterns and project conventions. 4. **Run verification and report results** Execute appropriate build/tests and summarize what changed, what was verified, and any follow-up actions. ## Reference For detailed guidance, examples, and constraints, see [references/312-frameworks-spring-data-jdbc.md](references/312-frameworks-spring-data-jdbc.md).
© Juan Antonio Breña Moral · Apache-2.0 · jabrena/plinth