hibernate
SpringのHibernateDaoSupportクラスのgetHibernateTemplate経由のメソッドはSessionのcloseとflushを自動でやってくれるんですね。 ということは、getHibernateTemplate経由で取得したオブジェクトは分離オブジェクトになりますね。 Spring+Hibernateのセッ…
ここ何日かHibernateAnnotationsを使ってみて気づいたことなんですが、ビジネス層がアノテーションで汚染されてるような気が...。 現在作成中のアプリケーションのレイヤ構成とパッケージ構成はこんな↓感じです。プレゼンテーション |-action ?form ビジネス…
Hibernateアノテーションでまたもやハマってしまいました...orz Immutableなクラスを作りたくてフィールドアクセスに変えようとしただけなのになぁ。 Hibernateでgetter/setterアクセスからフィールドアクセスに変更するには通常hbmファイルだと↓のようにacc…
昨日に引き続きHibernateアノテーションの話題です。 EJB3アノテーションのcascadeにはall-delete-orphanがありません。 これがないと1対多の関係で多のオブジェクトを削除してもDelete文を発行してくれません(それどころかupdateメソッドで落ちます)。 この…
Hibernateでイーガフェッチを使うと重複行までとってきてしまいます。 普通、重複行は持ってこないだろと思うのですがそんなに親切ではありませんでした。通常eagerなコレクションフェッチをすると重複が出てしまうため、あなたが期待するような行数にはなら…
今日は一日中、Hibernateアノテーションと格闘してました。 Hibernateアノテーションに移行してしまえばhbmファイルが必要なくなるので導入するメリットはでかいです。 まずはこちらのページで基礎を勉強してしてます。 HibernateAnnotations::きしだ なおき…
HibernateとSpringの連携を使って汎用Daoを作ってみます。 Daoって同じようなコードであふれることがよくあるのでGenericsを使って整理するのがポイントです。 まずModelクラスを実装します。 public class Product implements Serializable { private Long …
以下の項目をすべて行うとHibernateが人格障害に陥ります。 hbm.xmlはもちろん手書き HQLは使わない。createSQLQueryを使う。 SQLはもちろんコード直書き。 関連は使わない。テーブルとモデルは1対1で設計する。 モデルオブジェクトはHibernateセッションの…
Struts + Spring + Hibernateが魔の組み合わせと言われるのがようやくわかってきました。 とりあえずメモ。 Strutsは実質FormにString型のフィールドしか使えない。Formからモデルに変換が必要。ドメインモデルにするとFormとの変換が超大変。→オブジェクト/…
昨日、Spring入門研修の最終日でした。 最終日はSpringの宣言トランザクションの機能とHibernateとの連携について勉強しました。 宣言トランザクションを使うことによってビジネスロジックからトランザクション系のコード(コミットとかロールバックとか)を…
Hibernateの勉強が一通り終わったので、早速手持ちのフレームワークを改造してHibernateを使ってみることにしました。 データベースはHSQLDBを使うことにしました。 慣れるのに少し苦労しましたが何とか使えるようになりました。 DB環境も整ったしあとは動か…
HIBERNATE イン アクションソフトバンク クリエイティブこのアイテムの詳細を見る今使ってるFrameworkはデータベースまわりの機能が非常に弱い。 何とか改良したいなと、じゃあO/Rマッピングの勉強してみるかということで読みました。 Strutsインアクション…
最近、Strutsベースの自前フレームワークの改造を少しづつ行っています。 パッケージ構成を整理したり、無駄な継承をやめたり、足りない機能を追加したり、HTMLからXHTMLに変更したり... とまぁ基本的なことを細々とやってるんですけどそれだけでも結構シ…
正しくはHibernateです。ハイバーネイトと読むようです。 どうも聞き間違えたみたいです。 O/Rマッピングフレームワークの名称です。 他にJDO、TorqueというO/Rマッピングのフレームワークが存在します。 今回使うかどうかはわかりませんが、O/Rマッピングに…