Agent skill · software engineering · affaan-m

jpa-patterns

JPA/Hibernate patterns for entity design, relationships, query optimization, transactions, auditing, indexing, pagination, and pooling in Spring Boot.

Why this skill is useful

Provides specific JPA/Hibernate patterns and optimizations that the AI wouldn't reliably generate on its own.

What it needs

About 1k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.

What this skill does

JPA/Hibernate パターン Spring Bootでのデータモデリング、リポジトリ、パフォーマンスチューニングに使用します。 エンティティ設計 監査を有効化: リレーションシップとN+1防止 デフォルトで遅延ロード。必要に応じてクエリで JOIN FETCH を使用 コレクションでは EAGER を避け、読み取りパスにはDTOプロジェクションを使用 リポジトリパターン 軽量クエリにはプロジェクションを使用: トランザクション サービスメソッドに @Transactional を付ける 読み取りパスを最適化するために @Transactional(readOnly = true) を使用 伝播を慎重に選択。長時間実行されるトランザクションを避ける ページネーション カーソルライクなページネーションには、順序付けでJPQLに id > :lastId を含める。 インデックス作成とパフォーマンス 一般的なフィルタ(status、slug、外部キー)にインデックスを追加 クエリパターンに一致する複合インデックスを使用(status, createdat) select を避け、必要な列のみを投影 saveAll と hibernate.jdbc.batchsize でバッチ書き込み コネクションプーリング(HikariCP) 推奨プロパティ: PostgreSQL LOB処理には、次を追加: キャッシング 1次キャッシュはEntityManagerごと。トランザクション間でエンティティを保持しない 読み取り集約型エンティティには、2次キャッシュを慎重に検討。退避戦略を検証 マイグレーション FlywayまたはLiquibaseを使用。本番環境でHibernate自動DDLに依存しない マイグレーションを冪等かつ追加的に保つ。計画なしに列を削除しない データアクセステスト 本番環境を反映するために、Testcontainersを使用した @DataJpaTest を優先 ログを使用してSQL効率をアサート: パラメータ値には logging.level.org.hibernate.SQL=DEBUG と logging.level.org.hibernate.orm.jdbc.bind=TRACE を設定 注意: エンティティを軽量に保ち、クエリを意図的にし、トランザクションを短く保ちます。フェッチ戦略とプロジェクションでN+1を防ぎ、読み取り/書き込みパスにインデックスを作成します。

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills affaan-m/jpa-patterns--9297a0

View the source on GitHub

Browse the @skills marketplace