Hibernate

Hibernate 入門記 問い合せ その2 集計関数,継承,where

まずは昨日へぼへぼだった外部結合について. from study.Magazine magazine left outer join magazine.modelHSQLDB のバージョンを 1.7.1 にもどしたところ,正しい結果を得ることが出来ました. [CanCam(Shogakukan):[Yu Yamada(20), Asami Usuda(19), Yur…

Hibernate 入門記 問い合せ その1 from,join,select

ごめんなさい( -_-) 入門記してませんでした…。 ちがうの、月曜日は CanCam の発売日だったの。 まぁ言い訳ですが。 ... 夏風邪はともかく,CanCam は言い訳になるのだろうか? ともあれ,今日から「Chapter 11. HQL: The Hibernate Query Language」,Hi…

Hibernate 入門記 トランザクション & 楽観的ロック

今日は「10. Transactions And Concurrency」です.このリファレンスドキュメント,現時点では 19 章まであります.ということは,この 10 章が折り返し点ですね.ずいぶん長いこと入門してきたような気がするのですが,やっと折り返し点に到着ですか... …

Hibernate 入門記 セッションその10 インターセプタ & メタデータ

さぁ,今日こそは 9 章を終わらせたいぞ!! そんなわけで,まずは「9.9. Interceptors」です. なんでも,セッションは様々なイベントを通知してくれるようです.しかも,そこでいろいろなことが出来るようです. セッションからのイベントを受け取るには,…

Hibernate 入門記 セッションその9 ライフサイクル

懸案の後始末も無事学習できたので,なんだかセッションはもういいよって気分の今日この頃. そして,セッションの残りもあとわずかということで,駆け足で終わらせちゃいましょう. ということで,まずは「9.8. Lifecyles and object graphs」です.lifecyc…

Hibernate 入門記 セッションその8 後始末とテンプレ

お待たせいたしました.今回はついに「9.7. Ending a Session」へと進みます.待望の,セッションの後始末です!! いやぁ,たかが後始末とはいえ,入門記開始以来○ヶ月にわたってセッションの後始末をすることなく過ごしてきましたからねぇ.まさに「心より…

Hibernate 入門記 セッションその7 削除とフラッシュ

緊急連載「Axis 入門記」に切り替えようかとも思ったのですが,やっぱりこっちを淡々と進めようということで,今回は「9.5. Deleting persistent objects」です. 永続オブジェクトをデータベースから削除するには,Session の void delete(Object object) …

Hibernate 入門記 セッションその6 更新

今回は「9.4. Updating objects」へ進みます. まずは「9.4.1. Updating in the same Session」. あるセッション中で取得した永続オブジェクトを更新する場合ですが,この場合,永続オブジェクトに加えられた変更は,Session#flush() を呼び出すだけで勝手…

Hibernate 入門記 セッションその5 問い合せその他

今回は問い合せの残りをまとめて片づけようと思います. まずは「9.3.4. Filtering collections」です. ... なんだかよく分かりません.(;_;) 分かんないけどとにかく問い合せらしいです.問い合せの対象は,永続化されたコレクションらしいです. コレ…

Hibernate 入門記 セッションその4 ScrollableResults

ちょっと油断している間に,Hibernate のバージョンは 2.1.6 にまで上がっていたのですね.気づかずに 2.1.4 を使い続けていました.残念!!!! ともあれ,今回は「9.3.3. Scrollable iteration」へ進みます.相変わらず問い合せ関連です. 今回学習するの…

Hibernate 入門記 セッションその3 Query

前回に引き続き問い合せのお勉強です.今回は「9.3.2. The Query interface」へ進みます. 取得する結果セットの開始位置や最大行数を指定したい場合には, Query という interface を使うことができるようです. こいつを取得するには,Session の Query cr…

Hibernate 入門記 セッションその2 find(),iterate(),スカラー

今回は「9.3. Querying」です. ほとんど毎回使ってきた問い合せです.一瞬,いまさら学習するまでもないかと思ったのですが,結構な分量があるみたい... 頑張ろ. まずは基本となる問い合せメソッド,find() の仲間たちです. List find(String query) L…

Hibernate 入門記 セッションその1 save(),load(),get(),refresh()

今日から「Chapter 9. Manipulating Persistent Data」へと進みます. ようやく,よーーーーーーっやく,Session の使い方を学習できます.いい加減セッションの後始末を学習しないと,何もしないのが身に付いてしまいます.やばいやばい. ということでまず…

Hibernate 入門記 継承その5 many-to-any

引き続き table per concrete class を使った場合の関連の学習,今回は多対多です. 前回の表で,多対多には <many-to-any> 要素を使うと書きましたが,実はそれに加えて <index-many-to-any> 要素を使うこともできるようです.こちらは関連をマップやリストにマッピングする際に使用します.</index-many-to-any></many-to-any>…

Hibernate 入門記 継承その4 any 要素

前回までに学習した継承マッピングのうち,最後に学習した table per concrete class を使った場合には,その永続クラスへの関連に大きな制限があるようです. まずは,「8.2. Limitations」より,各継承マッピングと扱うことのできる関連を見てみましょう.…

Hibernate 入門記 継承その3 table per concrete class

継承の3回目です. 今回は,コンクリートクラスすなわちインスタンスの実際のクラスごとに,個別のテーブルにマッピングする方法について学習します. EJB 3.0 (Early Draft) では,「Single Table per Class Strategy」に相当します. このマッピングは,こ…

Hibernate 入門記 継承その2 table per subclass

継承の2回目です. 今回は,サブクラスごとに個別のテーブルにマッピングする方法について学習します. サブクラスごとというか,継承階層のクラスごとといった方が適切かも.ルートクラスもテーブルにマップされるので. ちなみに EJB 3.0(Early Draft) で…

Hibernate 入門記 継承その1 table per class hierachy

今回からは「Chapter 8. Inheritance Mapping」へ進みます. 長いことスキップしまくってきた継承なのでドキドキしていたのですが,ドキュメントの量は意外なくらいに少なめ.もしかして簡単? いやいや,薄ーい数学の本は易しいかと思いきや,丁寧な説明が…

Hibernate 入門記 コンポーネント

CanCam を買ってきたので Hibernate どころではなかったりもするのですが,とりあえず... でも EJB3 はお休みかな.心より恥じる. 今日は「7. Component Mapping」です. ここでの「コンポーネント」は JavaBeans や EJB のコンポーネントとは全然関係な…

Hibernate 入門記 コレクションその11 Lazy Initialization

長く続いたコレクション編の締めくくりは,「6.5. Lazy Initialization」です.遅延初期化というか遅延ロードというか. これは,コレクション (関連) をデータベースからロードして永続クラス (または値型) のインスタンスを生成することを,本当に必要にな…

Hibernate 入門記 コレクションその10 idbag で many-to-many

今回はバッグのもう一つ, <idbag> 要素 について学習します. 前回の <bag> 要素と何が違うのかというと... うーみゅ... Hibernate では,複合キーはレガシー扱いで業務的な意味を持たない単なる ID (代理キーというらしい?)を主キーとすることを推奨しています</bag></idbag>…

Hibernate 入門記 コレクションその9 bag で many-to-many

今回はバッグ,要素の重複が許されるコレクションです. そのバッグなんですが,Java のコレクションフレームワークでは標準で用意されていません.そこで,バッグを保持するプロパティの型には java.util.Collection または java.util.List を使います. そ…

Hibernate 入門記 コレクションその8 array で many-to-many

今回は配列です.配列はリストと同じく順序付きコレクションです. 配列のマッピングには, <array> 要素 を使います.使い方はほとんど <list> 要素と同じです. まず,属性については lazy を指定することができないようです.代わりに次の属性が増えています. element</list></array>…

Hibernate 入門記 コレクションその7 list で element

今回はリストです.このリストは java.util.List と同じような意味で,順序付きコレクションのことです. リストのマッピングを指定するには, <list> 要素 を使います. こいつの使い方は,限りなく <map> 要素と近いようです. まず属性については,order-by 属性が使</map></list>…

Hibernate 入門記 コレクションその6 map で meny-to-many で index-many-to-many

引き続きマップの学習です. 前回書いたように,マップのキーは4種類あって,前回は <index> 要素を学習しました.となると,次は <composite-index> 要素かなぁと考えたのですが,あまり <index> 要素と変わり映えがしない感じ.単に複数のプロパティを持つ値型をキーに使えるというだけみ</index></composite-index></index>…

Hibernate 入門記 コレクションその5 map で element で index

今回からはマップの学習です. 前回まで学習したセットでは,関連先のオブジェクトを参照するために iterator を使って一つずつたどるしかありませんでした.セットっていうのはそういうものなので当然なのですが,たいていの場合これでは不便です.この入門…

Hibernate 入門記 コレクションその4 set で composite-element

前回に引き続きセットと値型の組み合わせ.今回は <composite-element> 要素 です. これは,複数のプロパティを持つ値型のオブジェクトをマッピングするものです.以前「マッピング定義その7 component & dynamic-component 要素」で学習したコンポーネントみたいな感じですか</composite-element>…

Hibernate 入門記 コレクションその3 set で element

前回・前々回は永続クラス(エンティティ)への1対多・多対多関連を学習しましたが,今回からは値型への対多関連です. まずは,1つのカラムからなる値型をマッピングするための <element> 要素 です.これは例によって,<set> 要素の子として,<key> 要素に続けて記述します. そ</key></set></element>…

Hibernate入門記 コレクションその2 set で many-to-many しかも双方向

前回に引き続いて <set> を扱いますが,今回は多対多に挑戦です.ついでに双方向も. ということで,「6.3. Collections of Values and Many-To-Many Associations」とか「6.8. Bidirectional Associations」あたりの学習です. Hibernateは,多対多関連も1対多関</set>…

Hibernate入門記 コレクションその1 set で one-to-many

今回からはいよいよ「Chapter 6. Collection Mapping」へ突入です. 個人的には,セッションの後処理すらしないまま突き進んでいるのが無念なので(でも説明が出てくるまで意地でもこのままやっていこうかと),そのあたりを早く学習したい気もするのですが,…