Hibernate は、Java の世界ではデファクト・スタンダードとも言えるORM(Object-Relational Mapping)フレームワークです。しかし現実にHibernateを利用してみると、さまざまな部分で躓き、試行錯誤しながらの開発を強いられることでしょう。そこで本書では、たんなるマニュアルではなく、プロジェクトで実際に使われてきた、真に実用になるテクニックをギュッと詰め込み、逆引き形式で解説。Java開発者待望の1冊です!!
01:Hibernateの基礎知識
01-01 HibernateとO/Rマッピング
01-01-01 Hibernateとは
01-01-02 Hibernateの全体像
01-01-03 Hibernateの設定
01-01-04 Sessionと永続化コンテキスト
01-02 オブジェクトの永続化
01-02-01 永続化クラス
01-02-02 永続化されるオブジェクトの状態
01-02-03 オブジェクトの同一性と同値性
01-02-04 マッピングの基本概念
01-02-05 オブジェクトの関連
01-02-06 オブジェクトの取得と推移的永続化
01-03 トランザクション
01-03-01 トランザクションの概念
01-03-02 DBトランザクション
01-03-03 Sessionの有効期間とトランザクション
01-03-04 アプリケーショントランザクション 01-04 遅延初期化とプロキシ
01-04-01 遅延初期化という考え方 01-04-02 プロキシとCDLIB
01-04-03 遅延初期化の実例
01-04-04 フェッチ戦略
02:Hibernateの設定
02-01 SessionFactory
02-01-01 Hibernateの設定ファイルを読み込みたい
02-01-02 プロパティを設定したい
02-01-03 マッピング情報を読み込ませたい
02-01-04 SessionFactoryを生成したい
02-02 データベースとトランザクション
02-02-01 接続先データベースを指定したい
02-02-02 コネクションの取得方法をカスタマイズしたい
02-02-03 JDBCコネクションをカスタマイズしたい
02-02-04 利用するデータベースプロジェクトファクトを指定したい
02-02-05 トランザクションの制御方法を指定したい
02-02-06 セッションを開放する方法を指定したい
02-03 ロギング
02-03-01 Hibernateにログを出力させたい
02-03-02 発行されたSQLを出力させたい
02-04 スキーマ
02-04-01 マッピングの命名戦略をカスタマイズしたい
02-04-02 スキーマを自動生成させたい
03:オブジェクトとセッションの操作
03-01 オブジェクト指向の操作概要
03-01-01 Hibernateを利用したアプリケーション開発
03-02 オブジェクトの操作
03-02-01 識別子を元に検索したい
03-02-02 新規にデータベースへ登録したい
03-02-03 永続オブジェクトを削除したい
03-02-04 分離オブジェクトを永続オブジェクトにしたい
03-02-05 悲観的なロックを実現したい
03-03 セッションの操作
03-03-01 セッションを取得したい
03-03-02 オブジェクトの修正を確定したい
03-03-03 セッション上のキャッシュをクリアしたい
03-03-04 オブジェクトの再取得したい
03-03-05 トランザクションを開始したい
03-03-06 トランザクションを終了したい
03-03-07 フラッシュの挙動を変更したい
03-03-08 Statelessなセッションを使いたい
04:マッピング
04-01 全体の概要
04-01-01 マッピングの概要
04-01-02 クラスのパッケージを1箇所で指定したい
04-01-03 注釈(アノテーション)を使いたい
04-02 クラス
04-02-01 クラスのマッピングをしたい
04-02-02 1つのクラスで複数のマッピングを行いたい
04-02-03 ビューをマッピングしたい
04-02-04 SELECT文の結果をマッピングしたい
04-02-05 発行されるSQLをカスタマイズしたい
04-02-06 他のテーブルと結合したクラスを作りたい
04-02-07 異なるパッケージで同じな前のクラスをマッピングしたい
04-02-08 取得元のテーブルに静的な条件を付けたい
04-02-09 取得元のテーブルに動的な条件を付けたい
04-02-10 更新を行わない永続化クラスを作りたい
04-03 プロパティ
04-03-01 プロパティをマッピングしたい
04-03-02 主キーをマッピングしたい
04-03-03 複合キーをマッピングしたい
04-03-04 ID生成戦略を指定したい
04-03-05 コンポーネントを利用したい
04-03-06 プロパティの型を指定したい
04-03-07 ユーザー定義の型を作りたい
04-03-08 楽観的なロックを実現したい
04-03-09 特定のカラムと対応しないプロパティを作りたい
04-03-10 プロパティの値をRDBMS側で作成したい
04-03-11 特定のプロパティを更新しないようにしたい
04-03-12 特定のプロパティを楽観的ロックの条件に含めたくない
04-03-13 プロパティへアクセスする方法を指定したい
04-03-14 オブジェクトが保存されていない状態をカスタマイズしたい
04-03-15 プロパティ名/カラム名を動的に決めたい
04-03-16 自然キーをマッピングしたい 04-04 コレクション
04-04-01 コレクションマッピングの基本を知りたい
04-04-02 任意の値(マッピング型)のコレクションをマッピングしたい
04-04-03 マッピングにSetを使いたい
04-04-04 マッピングにインデックスを持つコレクションを使いたい
04-04-05 マッピングにMapを使いたい
04-04-06 重複を許すコレクションを使いたい
04-04-07 コレクションに順番を指定したい
04-04-08 コレクションに静的な条件を追加したい
04-04-09 コレクションに動的な条件を追加したい
04-04-10 ユーザー定義のコレクション型を使いたい
04-04-11 コンポーネントのコレクションをマッピングしたい 04-05 関連
04-05-01 多対一関連を使いたい 04-05-02 多対一関連で関連先がない場合に例外が発生しないようにしたい
04-05-03 同じカラムに対応する多対一関連とプロパティを共存させたい
04-05-04 関連するオブジェクトもまとめて更新したい
04-05-05 一対一関連を使いたい
04-05-06 一対一関連で更新の順番を明示したい
04-05-07 対一関連で主キー以外のプロパティを関連付けたい
04-05-08 一対多関連を使いたい
04-05-09 多対多関連を使いたい
04-05-10 双方向関連を実現したい
04-05-11 中間テーブルを使わずに多対多関連を実現したい
04-05-12 任意のオブジェクトと関連させたい
04-05-13 カラムを使わずに関連させたい
04-06 継承
04-06-01 サブクラスをマッピングしたい
04-06-02 クラス階層ごとに1つのテーブルとしてマッピングしたい
04-06-03 サブクラスごとのテーブルとしてマッピングしたい
04-06-04 具象クラスごとのテーブルとしてマッピングしたい
05:クエリ
05-01 クエリの操作
05-01-01 本章で利用するサンプルの紹介
05-01-02 HQLを呼び出したい
05-01-03 クライテリアを利用した検索したい
05-01-04 ネイティブSQLを呼び出したい
05-01-05 クエリでパラメータを使いたい
05-01-06 クエリを実行したい
05-01-07 受け取る結果の形式を変更したい
05-01-08 クエリ実行時の取得件数を指定したい
05-01-09 クエリの結果をロックしたい
05-01-10 クエリ実行時にフラッシュさせないようにしたい
05-01-11 クエリ実行時のSQLに任意のコメント文字列を出力したい
05-01-12 クエリに対してJDBCパラメータを設定したい
05-02 HQL
05-02-01 HQLの基本構文を知りたい
05-02-02 取得する列を指定したい
05-02-03 取得結果を別のクラスで返したい
05-02-04 他のクラスと結合したい
05-02-05 関連オブジェクトを合わせて取得したい
05-02-06 式に指定できるものを知りたい
05-02-07 プロパティの指定方法を知りたい
05-02-08 列挙型(enum)や固定値を使いたい
05-02-09 HQL特有の演算子を使いたい
05-02-10 関数を使いたい
05-02-11 集約関数を使いたい
05-02-12 副問い合わせ(サブクエリ)を使いたい
05-02-13 データを更新したい
05-03 ネイティブSQL
05-03-01 結果の型を指定したい
05-03-02 結果をオブジェクトにマッピングしたい
05-03-03 関連オブジェクトを合わせて取得したい
05-03-04 マッピングファイルにクエリを記述したい
05-04 クライテリア
05-04-01 検索条件を追加したい
05-04-02 検索結果をソートしたい
05-04-03 関連オブジェクトに対して条件を追加したい
05-04-04 関連オブジェクトを合わせて取得したい
05-04-05 AND/OR条件を追加したい
05-04-06 一致(=)、不一致(<>)の条件を追加したい
05-04-07 IS NULLの条件を追加したい
05-04-08 自然キーに対する条件を追加したい
05-04-09 大小比較の条件を追加したい
05-04-10 ある条件を否定(NOT)する条件を追加したい
05-04-11 複数の条件をまとめて指定したい
05-04-12 範囲指定(BETWEEN)の条件を追加したい
05-04-13 LIKEによる部分一致の条件を追加したい
05-04-14 包含(IN)を使用した条件を追加したい
05-04-15 対多関連の件数を条件に追加したい
05-04-16 QueryByExampleを使って条件を追加したい
05-04-17 部分的にSQLを使って条件を追加したい
05-04-18 取得するカラムを限定したい
05-04-19 射影を利用した取得するプロパティを指定したい
05-04-20 射影を利用して集約関数を使いたい
05-04-21 Sessionが存在しない状況下でクライテリアを生成したい
05-04-22 副問い合わせの結果に対して一致(=)、不一致(<>)の条件を追加したい
05-04-23 副問い合わせの結果に対して大小比較の条件を追加したい
05-04-24 副問い合わせの結果に対してIN、NOT INの条件を追加したい
05-04-25 副問い合わせの結果に対してEXISTS、NOT EXISTSの条件を追加したい
05-04-26 副問い合わせの結果に対してSOME、ALLの条件を追加したい
06:パフォーマンス
06-01 Hibernateとパフォーマンス
06-01-01 HibernateのDBアクセス
06-01-02 関連オブジェクトのフェッチ戦略を変更したい
06-01-03 関連オブジェクトの取得にバッチフェッチを利用したい
06-01-04 遅延初期化の挙動を変更したい
06-01-05 大量のデータの挿入/更新を効率よく行いたい
06-02 キャッシュの利用
06-02-01 2次キャッシュを利用したい
06-02-02 2次キャッシュの設定を行いたい
06-02-03 クエリごとに2次キャッシュの挙動を変更したい
06-02-04 クエリキャッシュを利用したい
06-03 実行時の状況を知る方法 06-03-01 統計情報のモニタリングを開始したい
06-03-02 永続オブジェクトの統計情報を見たい
07:高度な話題
07-01 Hibernateの高度な利用方法
07-01-01 本章で利用するサンプル
07-01-02 永続化時に任意の処理を割りこませたい
07-01-03 クラスの永続化戦略をカスタマイズしたい
07-01-04 セッションの動作をカスタマイズしたい
07-01-05 マッピングメタ情報を利用したい
07-01-06 POJO以外の永続オブジェクトを利用したい
07-01-07 セッションの割り当て方法を指定したい
07-01-08 セッションからコネクションを取得したい
07-01-09 JNDIにSessionFactoryを登録したい
07-01-10 ID生成戦略の種類を知りたい
07-01-11 永続クラスへの操作をカスタマイズしたい
07-01-12 Hibernateのその他のプロダクト
07-02 ツールによる自動生成
07-02-01 マッピングファイルからDBスキーマを生成したい
07-02-02 Hibernate Toolsによる自動生成
07-02-03 DBスキーマからマッピング情報を生成したい
07-02-04 マッピングファイルからPOJOを生成したい
07-03 Springとの連携
07-03-01 Springが提供するHibernateサポート
07-03-02 典型的なDAOを作りたい
07-03-03 宣言的トランザクションを利用したい
07-03-04 Open Session In Viewパターンを利用したい
07-04 プログラミングTIPS
07-04-01 一対一関連の関連オブジェクトを削除したい
07-04-02 一対多関連の洗い替えを行いたい
07-04-03 ページング処理を行いたい
07-04-04 永続オブジェクトのロード時に任意のBeanをインジェクションしたい
07-04-05 更新時に自動で履歴も永続化したい
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||
---|---|---|---|---|---|---|---|---|---|
0刷 | 274 表「MatchModeに定義された定数」の2行目、3行目 |
未 | 未 |
|
2008.10.03 | ||||
0刷 | 277 表「対多関連のサイズの条件を生成するメソッド」1行目 |
未 | 未 |
|
2008.10.03 |