Spring Data JPAプログラミング入門

概 要

Spring Data JPAは、データベースにアクセスするための重要なライブラリーです。しかし、専門書やネットの情報が少なく、開発現場も困惑していました。本書は、Spring Data JPAを使って実際にアプリケーションを構築するノウハウを体系的にまとめた入門書です。入門者のみならず、すでにアプリを開発している方向けに、基礎から、認証や認可、単体テストなど業務アプリケーションを開発するうえで必要な知識を網羅しています。

著者 溝口賢司
価格 本体4000円(税別)
ISBN 978-4-7980-5195-6
発売日 2017/8/3
判型 B5変
ページ数 600
CD/DVD
ダウンロード
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter 1 リレーショナルデータベースとSpring Data

1.1 Spring Data概要

JPAとは

Spring Dataの構成

Spring Data JPAの構成

1.2 Spring Data JPAとJava EE JPAの違い

フレームワークの位置づけの違い

実装方法の違い

データアクセスフローの違い

エンティティーのライフサイクル

1.3 Spring Data JPAを選ぶ理由

Hibernate

MyBatis

どれを選ぶべきか

1.4 Spring Tool Suiteで始めるSpring Data JPA

Spring Tool Suiteの入手

Spring Tool Suiteプラグインのインストール

Springパースペクティブへの切り替え

Spring Data JPAのプロジェクト作成

本書の解説で使用する構成

1.5 演習 Spring Data JPAのプロジェクト作成

プロジェクトの作成

パッケージの作成

Thymeleafの設定

接続情報の定義

アプリケーションの起動

Chapter 2 Spring Data JPAの基本的な実装方法

2.1 データモデルの設計

概念設計

論理設計

物理設計

JPAで変わるデータモデルの設計

2.2 エンティティー概要

2.3 エンティティーの基本

クラス名、フィールド名の命名ルール

フィールド名のデータ型ルール

フィールドのアクセス方法

2.4 テーブル・列のマッピング

テーブルへのマッピング

列へのマッピング

列の属性

一意となるフィールドメンバーの指定

フィールドメンバーにインデックスを生成

2.5 コレクションフィールドのマッピング

コレクションフィールドのマッピング

マップフィールドのマッピング

埋め込みクラスの使用

2.6 主キーフィールド特有のマッピング

主キー値の自動生成

複合主キーのマッピング

2.7 特殊なマッピング

フィールドメンバーに列挙(enum)をマッピングする

フィールドメンバーにラージオブジェクト(LOB)をマッピングする

日付・時刻フィールドのマッピング

コンバーターの作成

親エンティティークラスの作成

監査情報の記録

バージョン情報

2.8 演習 エンティティーの作成

エンティティーの作成

サービスの作成

コントローラーの作成

テンプレートの作成

設定情報の追加

テストデータの準備

アプリケーションの起動

Chapter 3 リポジトリーを使ったデータアクセス

3.1 リポジトリーの作成

実装方法

利用方法

リポジトリーの仕組み

3.2 リポジトリーを使ったデータアクセス

データの取得

取得したデータの更新

データの挿入・更新

データの削除

3.3 クエリーメソッドを使ったデータアクセス

フィールドを指定した検索メソッド

複数のフィールドを指定した検索メソッド

フィールドの比較方法を指定した検索メソッド

ソート

ページング

並び替え、取得件数指定のキーワードとソート、ページング引数の併用

件数取得メソッド

存在確認メソッド

削除メソッド

大量データの検索

非同期実行

メソッド名のあいまいさ回避

データの投影

独自モデルの定義

クエリーメソッドの定義

再モデリング

3.4 JPQLを使ったデータアクセス

JPQLを使用する

JPQLの文法

JPQLと永続化コンテキスト

JPQLで使用できる関数

Hibernateで使用できる拡張関数

ネイティブの機能を呼び出す

ネイティブSQLを使用する

名前付きパラメーター

マッピングファイル

ソート

ページング

データの投影

独自モデルの定義

名前付きクエリーメソッドの定義

SpEL

3.5 演習 リポジトリーの作成

リポジトリーの作成

サービスの修正

アプリケーションの起動

Chapter 4 データアクセスの実装

4.1 Criteria APIを使ったデータアクセス

実装方法

もっとも簡単な利用方法

Criteria API

Rootを使用したフィールド指定

CriteriaBuilderを使用した検索条件指定

CriteriaQueryを使用したクエリーの組み立て

サブクエリー

ヘルパークラスの作成

4.2 QueryDSL拡張を使ったデータアクセス

準備

ビルド

実装方法

もっとも簡単な利用方法

フィールドの条件指定と演算・変換

検索条件の動的な生成

フィールド同士の比較

値を加工して比較

サブクエリー

ソート

4.3 カスタムメソッドを使用したデータアクセス

カスタムメソッドの実装方法

カスタムメソッドの使用方法

カスタムメソッドからCriteria APIを使用する

4.4 ストアドプロシージャの呼び出し

入力パラメーターをもつストアドプロシージャ

入出力パラメーターをもつストアドプロシージャ

複数の出力パラメーターをもつストアドプロシージャ

4.5 演習 様々なデータアクセスの実装と利用

追加する機能

機能要件

検索機能の実装

挿入機能の実装

削除機能の実装

画面テンプレートの実装

動作確認

Chapter 5 リレーションシップ

5.1 リレーションシップ

リレーションシップの種類

一対一のリレーションシップ

データモデル

5.2 一対一のリレーションシップ

一対一のエンティティー定義

双方向の一対一のエンティティー定義

共有主キーの一対一のエンティティー定義

5.3 一対多のリレーションシップ

一対多のエンティティー定義

双方向の一対多のエンティティー定義

コレクションフィールドのソート

5.4 多対多のリレーションシップ

多対多のエンティティー定義

双方向の多対多のエンティティー定義

結合テーブルの指定

非主キー列を使った多対多のリレーションシップの定義

コレクションフィールドのソート

5.5 特殊なリレーションシップ

主キー列以外の列を結合先に指定

「一」側を所有者側とした一対多

複数フィールドを関係列としたリレーションシップ

5.6 リレーションシップを持つエンティティーのデータアクセス

リポジトリーの既定メソッド

クエリーメソッド

N+1問題

JPQL

5.7 演習 リレーションシップの定義と利用

追加する機能

部課エンティティーと部課リポジトリーの作成

社員エンティティーにリレーションシップを定義

部課の検索機能追加

部課一覧の取得

画面に部課項目を追加

テストデータの準備

動作確認

Chapter 6 トランザクション

Atomicity(原子性)

Consistency(一貫性)

Isolation(独立性)

Durability(永続性)

6.1 トランザクション管理

TransactionManagerによるトランザクション管理

宣言的トランザクション管理

分離レベル

トランザクション境界

6.2 排他制御

排他制御方式

排他制御の実装方法

6.3 複数データベース接続

複数データベースへの接続イメージ

複数データベース接続の実装方法

複数データベース接続の動作検証

2相コミット

2相コミットの実装方法

2相コミットの動作検証

2相コミットのデメリット

6.4 演習 排他制御の実装

追加する機能

社員情報の取得

社員情報の更新

社員一覧の画面テンプレートの更新

社員情報編集の画面テンプレートの更新

排他制御なしの更新の動作確認

排他制御の実装

テストデータの準備

排他制御を実装した更新の動作確認

Chapter 7 セキュリティー

7.1 認証

ライブラリーの依存関係の追加

認証の設定

認証に使うデータベース

認証サービスの実装

動作確認の準備

動作確認

7.2 認可

認可に使うデータベース

ユーザー情報クラスの変更

認証の設定変更

動作確認の準備

動作確認

7.3 演習 認証の実装

追加する機能

ライブラリーの依存関係の追加

認証の設定

認証エンティティーと認証リポジトリーの作成

認証サービスの実装

テストデータの準備

動作確認

問題点

解決方法

動作確認

Chapter 8 テスト

8.1 テスト

開発工程とテスト工程の関係

テストの実施方法

8.2 単体テストの自動化

Spring Frameworkのテストモジュールを追加

テストクラスの作成

SQLスクリプトの実行

Chapter 9 RESTサービス

9.1 Spring Data RESTとは

9.2 RESTサービスの構築

ライブラリーの依存関係の追加

エンティティーとリポジトリーの作成

環境設定

RESTサービスのインターフェース

テスト実行

CRUDインターフェース

複合主キー

RESTサービスのカスタマイズ

9.3 演習 Spring Data RESTの利用

ライブラリーの依存関係の追加

セキュリティーの設定

RESTサービスの呼び出し実装

動作確認

Webサービスを使うべきか

Appendix

A.1 SpEL(Spring Expression Language)

リテラル式

配列、リスト、マップ

プロパティー

メソッド呼び出し

算術演算子

三項演算子

エルヴィス演算子

セーフ・ナビゲーション演算子

関係演算子

論理演算子

型演算子

new演算子

コレクションセレクション

コレクションプロジェクション

A.2 プロパティー

Spring Data JPAのプロパティー

SQLのログ出力に関するプロパティー

A.3 EclipseLink

切り替え方法

PR

秀和システム