第3回 HibernateとCaché、性能比較の結論を出そう
ネクストデザイン
村山 徹
2006/2/3
オブジェクト指向プログラミングとリレーショナル・データベースの相性の悪さは、アプリケーション開発者の悩みの種だ。これを回避する2つの方法、すなわちO/Rマッピングツールとオブジェクト指向データベースを取り上げ、Javaの永続化方式を比較するのが本連載の狙いである。(編集部)
主な内容 --Page 1--
はじめに継承と関連の定義(Hibernateの場合) --Page 2--
継承と関連の定義(Cachéの場合)アプリケーションコードを書く --Page 3--
本事例における設計モデルを比較する--Page 4--
総合的な性能比較最後に |
第1回では、永続化が多くのアプリケーション・システムにおいて共通の課題であること、第2回では、簡単なモデル(本事例注1のオブジェクト・モデルの一部)を使って、HibernateとCachéの使用方法を見ていただきました。最終回の今回は、継承や関連といったオブジェクト指向技術の概念やモデル要素の扱いについて、それぞれの使用例を紹介します。そして、どのような観点に立って2つの製品を選択すべきかについて考えてみたいと思います。
注1: 筆者が本稿を執筆するもととなった開発事例「ユースケース記述を作成するためのツール」のこと。詳細は第1回「Javaのオブジェクト永続化に何を選ぶ?」を参照。 |
前回までは、ただ1つのクラス(CaObject)について永続化の方法を見てきました。次は、実際のシステム開発では頻繁に登場する「継承」と「関連」の定義方法を見てみましょう。第2回で掲載した「ドメインモデルの一部」を図1として再掲します。ここに示した3つのクラスを含むオブジェクト・モデルを永続化します。
図1 ドメインモデルの一部(第2回記事より再掲) |
第2回のリスト2で示したXML定義ファイル「CaObject.hbm.xml」に、そのサブクラスとしてCaScenarioとCaUsecaseを追加します(リスト1の(1)、および(3)<joined-subclass>要素)。
次に、CaUsecaseクラスとCaScenarioクラスの間に、1対多の双方向関連を定義します。つまり、CaUsecaseからも、CaScenarioからも、相手を誘導可能な関連です。具体的には、CaScenarioからCaUsecaseへ多重度1の関連(リスト1の(2)<many-to-one>要素)を追加し、同様にCaUsecaseからCaScenarioへ多重度Nの関連(リスト1の(4)<one-to-many>要素)を追加します。
CaObjectの場合と同様に、Javaソースファイル「CaUsecase.java」「CaScenario.java」を作成します。(リスト2、リスト3)。
これで、図1のオブジェクト・モデルを永続化するための準備ができました。
<?xml version="1.0" encoding="Shift_JIS"?> |
リスト1 Hibernateでのユースケースクラスとシナリオクラスの定義(抜粋) |
import java.util.Set; |
リスト2 CaUsecase.java |
public class CaScenario extends CaObject { |
リスト3 CaScenario.java |
1/4 |
Index | |
対決! O/Rマッパー vs. オブジェクト指向DB(3) HibernateとCaché、性能比較の結論を出そう |
|
Page 1 ・はじめに ・継承と関連の定義(Hibernateの場合) |
|
Page
2 ・継承と関連の定義(Cachéの場合) ・アプリケーションコードを書く |
|
Page
3 ・本事例における設計モデルを比較する |
|
Page 4 ・総合的な性能比較 ・最後に |
対決! O/Rマッパー vs. オブジェクト指向DB |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|