Spring JPAのロック戦略

Spring JPAのロック戦略 - @Versionによる楽観的ロックと悲観的ロックの実装

楽観的ロック(Optimistic Locking)と@Versionアノテーション、OptimisticLockExceptionのハンドリング、悲観的ロック(Pessimistic Locking)とLockModeType(PESSIMISTIC_READ、PESSIMISTIC_WRITE)、@Lockアノテーション、デッドロック対策、ロック戦略の選定基準を解説します。

Spring JPAのトランザクション落とし穴

Spring @Transactionalの落とし穴 - 自己呼び出し問題とプロキシの仕組み

@Transactionalが効かない典型パターン(自己呼び出し、private メソッド、非Spring管理Bean)、Springのプロキシベースのトランザクション管理の仕組み、自己呼び出し問題の解決策(コンポーネント分離、ApplicationContextからの取得、AspectJ)、チェック例外でのロールバック設定を解説します。

Spring JPAのトランザクション管理

Spring @Transactional完全ガイド - トランザクション伝播と分離レベルの設定

@Transactionalアノテーションの基本、伝播属性(Propagation.REQUIRED、REQUIRES_NEW、NESTED等)の違いと使い分け、分離レベル(Isolation.READ_COMMITTED等)の設定、readOnlyフラグの最適化効果を解説します。

Spring JPAの主キー生成戦略

Spring JPA主キー生成戦略 - @GeneratedValueとシーケンス・UUID設計

@Id、@GeneratedValueの設定オプション、GenerationType(AUTO、IDENTITY、SEQUENCE、TABLE、UUID)の比較、シーケンス最適化(@SequenceGenerator、allocationSize)、UUID主キーの採用基準、複合主キー(@EmbeddedId、@IdClass)の実装パターンを解説します。

Spring JPAのエンティティライフサイクル

Spring JPAエンティティライフサイクル - @PrePersist/@PostLoadコールバックの活用

エンティティのライフサイクルイベント(persist、update、remove、load)、@PrePersist、@PostPersist、@PreUpdate、@PostUpdate、@PreRemove、@PostRemove、@PostLoadの各コールバックアノテーションの使い方と実践的な活用例(作成日時の自動設定、バリデーションなど)を解説します。

Spring JPAとEntityManagerのイメージ

Spring JPA永続化コンテキスト入門 - EntityManagerとキャッシュの仕組み

永続化コンテキスト(Persistence Context)の概念、EntityManagerのライフサイクル、1次キャッシュの動作、エンティティの4つの状態(New、Managed、Detached、Removed)、ダーティチェックによる自動更新の仕組みを解説します。

Spring BootとREST APIのイメージ

Spring Boot REST APIのページネーション実装 - Pageableによる一覧取得の最適化

Pageableインターフェースによるページネーション、Sortによるソート機能、Page/Sliceレスポンスの構造、カスタムページネーションレスポンスの設計を解説します。

Spring BootとREST APIのイメージ

Spring Boot REST APIのJPAリレーション設計 - @OneToMany、@ManyToOneとN+1問題の解決

エンティティ間のリレーションシップ設計(@OneToMany、@ManyToOne、@ManyToMany)、FetchType.LAZYとEAGER、N+1問題の原因と@EntityGraph・JOIN FETCHによる解決方法を解説します。

Spring BootとREST APIのイメージ

Spring Boot REST APIとSpring Data JPA - エンティティ設計とリポジトリパターン

JPA Entityの定義(@Entity、@Id、@GeneratedValue)、JpaRepositoryインターフェースによるCRUD操作、クエリメソッドの命名規則、@Query によるカスタムクエリを解説します。