312-frameworks-spring-data-jdbc について
Java の record を使う Spring Data JDBC の設計指針を適用するスキルです。エンティティ、リポジトリ、集約、クエリ、トランザクションを扱い、変更前のコンパイルと変更後の全体検証を求めます。
主な機能
- 01Java record によるエンティティ設計
- 02集約とリポジトリ境界の定義
- 03不変更新と save の動作整理
- 04パラメーター付きカスタムクエリ
- 05トランザクションと読み込みの指針
- 06コンパイルと全体検証の実施
活用シーン
- 01Spring Data JDBC のエンティティとリポジトリをレビュー
- 02集約境界と不変更新を見直す
- 03N+1 読み込みや安全でないクエリ生成を回避
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jabrena/ plinth --skill 312-frameworks-spring-data-jdbcインストール後、Claude Code で/312-frameworks-spring-data-jdbcを入力して読み込まれたか確認します。
同梱ファイルreferences/312-frameworks-spring-data-jdbc.md
詳細
レコードを使用した Spring Data JDBC
Java レコードを使用して Spring Data JDBC のガイドラインを適用します。
このスキルの対象範囲
- エンティティクラスにレコードを使用する(不変で、コンストラクターとの相性が良い)
- レコード名がテーブル名と異なる場合の命名に @Table を使用する
- @Embedded を使用して、値オブジェクトの列を別テーブルにせず親行にインライン化する
- リポジトリパターン
- 新しい行には静的ファクトリーを、更新には with* ヘルパーを使用した不変更新
- @Id の null 許容性によって決まる save() の INSERT と UPDATE のセマンティクス
- 集約境界:集約ルートごとにリポジトリを 1 つ設け、ルート内の一対多には Set を使用し、集約間には外部キーを使用する
- @Query と名前付きパラメーターを使用したカスタムクエリ(ユーザー入力を連結しない)
- トランザクション管理(サービスに @Transactional を付与し、適切な場合は readOnly を使用する)
- 単一クエリによる読み込み(N+1 の回避)
対象範囲: 参照ルールと適切なコード例・不適切なコード例に基づいて推奨事項を適用します。
制約
Spring Data JDBC の変更を適用する前に、プロジェクトがコンパイルできることを確認してください。コンパイルに失敗した場合は、直ちに作業を中止してください。改善を適用した後は、完全な検証を実行してください。
- 必須:変更を適用する前に
./mvnw compileまたはmvn compileを実行する - 安全性:コンパイルに失敗した場合は、直ちに作業を中止する
- 検証:改善を適用した後に
./mvnw clean verifyまたはmvn clean verifyを実行する - 適用前:詳細なルールと適切なパターン・不適切なパターンについて、参照資料を読む
- 例外ケース:依頼の範囲が曖昧な場合は、変更を適用する前に作業を中止し、明確化を求める
- 例外ケース:必要な入力、ファイル、ツールが不足している場合は、不足しているものを報告し、セットアップに関する案内を提示して進めてよいか確認する
このスキルを使用する場面
- Spring Data JDBC の Java コードをレビューする
- Java コードに Spring Data JDBC のベストプラクティスを適用する
- Java レコードを使用して Spring Data JDBC の集約をモデル化する
- Spring Data JDBC のリポジトリと集約境界をレビューする
- Spring Data JDBC の楽観的ロックやドメインイベントを改善する
ワークフロー
- 参照資料を読み、プロジェクトのコンテキストを評価する
変更を提案する前に references/312-frameworks-spring-data-jdbc.md を読み、現在のプロジェクト設定を確認します。
- 作業範囲を把握し、対象とする改善を決める
依頼された成果、制約、適用する変更のうち安全に実施できる最小限のものを特定します。
- フレームワークに沿った変更を適用する
参照資料のパターンとプロジェクトの規約に従って、設定やコードを実装またはリファクタリングします。
- 検証を実行し、結果を報告する
適切なビルドやテストを実行し、変更内容、検証した項目、今後の対応事項をまとめます。
参照資料
詳細なガイダンス、例、制約については、references/312-frameworks-spring-data-jdbc.md を参照してください。
コメント
Markdown 対応