第3回 HibernateとCaché、性能比較の結論を出そう
ネクストデザイン
村山 徹
2006/2/3
Cachéで継承と関連の定義を行うには、Cachéスタジオ(図2)を使ってCaUsecaseクラスとCaScenarioクラスを定義します(リスト4、リスト5)。
図2 Cachéスタジオ |
それぞれのクラスがCaObjectのサブクラスであることは、各定義の1行目にあるExtendsキーワードで宣言されます(リスト4の(1)、リスト5の(1))。
次に、CaUsecaseクラスとCaScenarioクラスの間に、1対多の双方向関連を定義します。CaUsecaseからCaScenarioへ多重度Nの関連(リスト4の(2))を追加し、同様にCaScenarioからCaUsecaseへ多重度1の関連(リスト5の(2))を追加します。
これで、図1のオブジェクト・モデルを永続化するための準備ができました。Hibernateの場合(リスト2、3)とは違って、Javaソースファイル(CaUsecase.javaとCaScenario.java)はCachéによって自動生成されます。
Class CaUsecase Extends CaObject |
リスト4 Cachéスタジオでの永続クラス(ユースケース)の定義 |
Class CaScenario Extends CaObject |
リスト5 Cachéスタジオでの永続クラス(シナリオ)の定義 |
次に、関連を永続化するアプリケーションコードを作成します。最初に、ユースケースのインスタンス(caUsecase)と、シナリオのインスタンス(caScenario)をそれぞれ1つ生成します。次に、このcaScenarioの親(ユースケース)にcaUsecaseを設定します。その結果、親であるユースケースcaUsecaseは、子(シナリオの集合)の1つとしてcaScenarioを持つようになります(図1参照)。
Hibernate、Caché、それぞれの場合のアプリケーションコードは、リスト6、リスト7のようになります。
//ユースケースのインスタンスを生成する |
リスト6 Hibernateの場合(接続、トランザクション、例外処理部などは省略) |
注2: この2行は、シナリオとユースケースの関連を最新の状態にするために必要となる。例えば本事例のように、シナリオとユースケースの関連が変更されるとすぐに、画面の表示内容も変更しなければならないアプリケーションでは必要である。しかし、最終的に永続化できればよいアプリケーションでは、必須とはならない。後にコミットした時点でデータベースに反映できればよいからである。 |
//ユースケースのインスタンスを生成する |
リスト7 Cachéの場合(接続、トランザクション、例外処理部などは省略) |
2/4 |
Index | |
対決! O/Rマッパー vs. オブジェクト指向DB(3) HibernateとCaché、性能比較の結論を出そう |
|
Page
1 ・はじめに ・継承と関連の定義(Hibernateの場合) |
|
Page 2 ・継承と関連の定義(Cachéの場合) ・アプリケーションコードを書く |
|
Page 3 ・本事例における設計モデルを比較する |
|
Page 4 ・総合的な性能比較 ・最後に |
対決! O/Rマッパー vs. オブジェクト指向DB |
Database Expert フォーラム 新着記事
- 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」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|