インターネットデパート - 取扱い商品数1000万点以上の通販サイト。送料無料商品も多数あります。

Hibernate入門: JPAModelGen、MetaModel、QueryDsl、Criteria API、HQL、Envers、Spring Framework、JMS/MQトランザクション対応:第2版 Javaフレームワーク入門

価格: ¥0
カテゴリ: Kindle版
Amazon.co.jpで確認
本書はサーバーサイド(Spring Framework等のOSS)のJava開発業務で半年程度の経験のあるWeb系技術者をターゲットにしたHibernate入門書です。
※第2版では組版処理システムを導入して索引を追加、またコードが読みやすいようにレイアウトを全面的に変更しました。

内容


Hibernateによるドメイン設計に関するトピックを広くカバーします。後半の章はモデルソースコードの自動生成(MetaModel)、大量の同時アクセス処理対策(JMS)についてもカバーします。

注意点


Hibernate(JPA実装プロバイダー)のみが本書の内容であり、JavaEE環境(アプリケーションサーバー)でのJPAは他書で別途学ぶようにしてください。JPQLについても一切カバーしていませんので、業務系アプリケーション開発者よりもWeb系に親和性が高い内容となっています。

参考のためにXMLによるドメインのマッピング(hbmファイル)を使った方式も解説しますが、数例を除いた全ての実装例ではJPA注釈を使います。hbmファイルを使った例はとばして読んで頂くことも可能です。

必要な知識と経験


SQLとRDBMS(MySQL/PostgreSQL/Oracleのいずれか)の知識と経験は必須です。Mavenは少なくともpom.xmlを編集した経験があることを前提とします。

さらにSpring FrameworkやJMS・マルチスレッドの知識も後半の3つの章(第十四章、第十五章、第十六章)を読むためには必要です「Spring Framework マルチスレッド入門:上巻」を合わせて読む事を推奨します。

目次


第一章 Spring Frameworkのまとめ


第二章 Hibernate開発環境の設定


LomBokのインストール
LomBokの使い方
MySQLの設定
PostgreSQLの設定
Mavenプロジェクト
Hibernateの基本属性
Hibernate Session API
JPA EntityManager
HQL(Hibernate版のSQL)
Hello, World
pom.xml
HikariCPの設定
HikariCP/Hibernate(MySQL)の環境設定
HikariCP/Hibernate(PostgreSQL)の環境設定
H2/Hibernateの環境設定

第三章 Session


オブジェクトの状態(Transient/Detached)
Hibernate Session API

第四章 Query


HQL(Hibernate Query Language)
Queryインターフェース

第五章 イベント処理


イベント処理の検証環境の設定
Hibernateライフサイクルイベントのインターセプト
BaseSessionEventListener
EmptyInterceptor
SessionEventListenerとInterceptorの登録
EventListener
Integrator

第六章 Hibernate: ORMとドメイン設計


Object-relational impedance mismatch
ORMの特徴
Hibernateによるドメイン設計
自然キー
複合キー
人工キー・サロゲートキー(Surrogate Key)
検証環境(PostgreSQL+HikariCP)
1つのEntityに複数のTable:@SecondaryTable
画像データ(バイナリ)・日付・時刻型

第七章 粒度-Component


コンポーネントの検証環境の設定(H2)
Component: XMLマッピング
Component: JPA注釈
ネストComponent:JPA注釈
複合キー(Composite Key):XMLマッピング
複合キー:JPA注釈

第八章 継承-Inheritance


サンプルコードの環境設定(H2)
Single Table(シングルテーブル)戦略
Table Per Class戦略
Joined(結合)戦略
コレクション(Java Collections Framework)

第九章 関連-Association


関連と方向性
所有者側と被所有者側
JPA注釈と関連
関連についての検証環境設定(H2)
単方向の1対1の関連(OneToOne)
1対1の双方向関連とmappedBy
補足:OneToOne(mappedBy)
双方向の1対1の関連(JoinTable)
optional=false
cascade
1対多の関連
単方向の1対多(One-to-Many)
双方向の1対多(One-to-Many)
1対多の双方向関連:JoinTable
多対1の関連(ManyToOne)
単方向の多対1の関連(ManyToOne)
多対1(ManyToOne):JoinTable
多対多の関連196
単方向の多対多関連(ManyToMany)
双方向の多対多関連(ManyToMany)
双方向の多対多の関連:XMLマッピング
多対多の関連:カスタム結合テーブル
NamedQuery
Lazy/Eager Fetch
Fetch戦略
Fetch戦略の検証環境設定(PostgreSQL)
FetchMode.SELECTとN+1問題
EagerとLazyとjoin fetch
Fetch戦略とN+1問題についての考察

第十章 Hibernate EnversとValidator


Envers+Validator検証の環境設定(HikariCP+MySQL、EL/Joda-Time)
Hibernate Validator
Hibernate Envers
Envers/Validatorの検証
監査ログクエリーと妥当性チェックの確認

第十一章 HQL


HQLの検証環境設定(MySQL+HikariCP)
HQLの検証環境設定(H2)
HQL表現

第十二章 Criteria API


Criteriaインターフェース
Restrictions
Projection
Criteria API(Restriction/Projection)検証の環境設定(H2)

第十三章 MetaModel


JPA MetaModelとJPAModelGen
JPAModelGenの環境設定(Maven)
Static MetaModel(JPA Canonical MetaModel)
CriteriaBuilderとCriteriaQuery
CriteriaBuilderと条件式
JPAModelGen:検証
QueryDsl
QueryDslの環境設定(Maven)
Qクラスの自動生成
QueryDsl: 基本API
QueryDsl: collectionとAPI

第十四章 Spring Frameworkとの連携


Spring Framework環境におけるHibernateとJPA
LocalSessionFactoryBean
Spring Framework+Hibernate+H2(注釈)
Spring Framework+JPA+H2(注釈)
Spring Messaging/ActiveMQとの連携
Springトランザクション
JMSトランザクション
JMSトランザクション設定:Spring Framework + Hibernate + MySQL5.x
JMSトランザクション:ドメイン設計
JMSトランザクション:DAO設計
JMSトランザクション:サービス設計
JMSトランザクション:検証

第十五章 Hibernate Transactionと並行処理


マルチスレッド設計
暗黙的(implicit)ロック
分離レベル
Locking(明示)
ロックの検証
デッドロックの検証
Deadlock: 複数ロックモードによる検証
競合の検証
競合:分離レベルの検証(PostgreSQL 9.4)
分離レベルの設定(HikariCP+PostgreSQL)
分離レベルの検証結果
並行処理のまとめ(前章も含めて)

第十六章 キャッシュ


EhCache
Hibernate Cacheの設定
自然IDとL2 Cache(2次キャッシュ)

付録 ユーティリティコード