Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add jabrena/plinth --skill 312-frameworks-spring-data-jdbc -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/312-frameworks-spring-data-jdbc/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/312-frameworks-spring-data-jdbc/

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

Similar skills

Everything for Backend and APIs →

From the same set40

161-java-profiling-detect This skill sets up Java profiling to collect CPU, memory, lock, GC and I/O data. Useful when an app is slow and you need to see where time goes. CX Codex +1 337installs 412-frameworks-quarkus-panache A skill for Hibernate ORM Panache in Quarkus: query patterns, DTO projections and locking, with a compile check before and after every change. CX Codex +1 331installs 402-frameworks-quarkus-rest A skill for designing and reviewing Quarkus REST APIs: JAX-RS resources, validation, status codes, versioning and caching. CX Codex +1 331installs 133-java-testing-acceptance-tests Turns maintainer-approved Gherkin scenarios into Java acceptance tests: RestAssured, DB and Kafka fixtures, WireMock for external REST. CX Codex +1 329installs 311-frameworks-spring-jdbc A skill that reviews and writes Spring JDBC code: pushes JdbcClient, catches SQL injection, fixes transaction boundaries. CX Codex +1 328installs 012-agile-epic The skill walks the agent through template questions and produces a Markdown epic: business value, scope, success criteria, risks. CX Codex +1 326installs 323-frameworks-spring-boot-testing-acceptance-tests Turns maintainer-sanitized Gherkin scenarios into Spring Boot acceptance tests with TestRestTemplate, Testcontainers and WireMock. CX Codex +1 324installs 401-frameworks-quarkus-core A skill that reviews and fixes the core of a Quarkus app: CDI beans, profiles, interceptors, virtual threads. Useful once the Java project already compiles. CX Codex +1 321installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor