A Day In The Life

とあるプログラマの備忘録

hibernate

Spring + Hibernate連携メモ

SpringのHibernateDaoSupportクラスのgetHibernateTemplate経由のメソッドはSessionのcloseとflushを自動でやってくれるんですね。 ということは、getHibernateTemplate経由で取得したオブジェクトは分離オブジェクトになりますね。 Spring+Hibernateのセッ…

アノテーション汚染

ここ何日かHibernateAnnotationsを使ってみて気づいたことなんですが、ビジネス層がアノテーションで汚染されてるような気が...。 現在作成中のアプリケーションのレイヤ構成とパッケージ構成はこんな↓感じです。プレゼンテーション |-action ?form ビジネス…

HibernateAnnotationsでフィールドアクセス

Hibernateアノテーションでまたもやハマってしまいました...orz Immutableなクラスを作りたくてフィールドアクセスに変えようとしただけなのになぁ。 Hibernateでgetter/setterアクセスからフィールドアクセスに変更するには通常hbmファイルだと↓のようにacc…

all-delete-orphanがない!

昨日に引き続きHibernateアノテーションの話題です。 EJB3アノテーションのcascadeにはall-delete-orphanがありません。 これがないと1対多の関係で多のオブジェクトを削除してもDelete文を発行してくれません(それどころかupdateメソッドで落ちます)。 この…

相変わらず受身なフレームワークに踊らされてます

Hibernateでイーガフェッチを使うと重複行までとってきてしまいます。 普通、重複行は持ってこないだろと思うのですがそんなに親切ではありませんでした。通常eagerなコレクションフェッチをすると重複が出てしまうため、あなたが期待するような行数にはなら…

EJB3の勉強にもなるHibernateアノテーション

今日は一日中、Hibernateアノテーションと格闘してました。 Hibernateアノテーションに移行してしまえばhbmファイルが必要なくなるので導入するメリットはでかいです。 まずはこちらのページで基礎を勉強してしてます。 HibernateAnnotations::きしだ なおき…

SpringとHibernateと時々Generics。

HibernateとSpringの連携を使って汎用Daoを作ってみます。 Daoって同じようなコードであふれることがよくあるのでGenericsを使って整理するのがポイントです。 まずModelクラスを実装します。 public class Product implements Serializable { private Long …

僕が僕じゃないみたい

以下の項目をすべて行うとHibernateが人格障害に陥ります。 hbm.xmlはもちろん手書き HQLは使わない。createSQLQueryを使う。 SQLはもちろんコード直書き。 関連は使わない。テーブルとモデルは1対1で設計する。 モデルオブジェクトはHibernateセッションの…

ダークサイドJava

Struts + Spring + Hibernateが魔の組み合わせと言われるのがようやくわかってきました。 とりあえずメモ。 Strutsは実質FormにString型のフィールドしか使えない。Formからモデルに変換が必要。ドメインモデルにするとFormとの変換が超大変。→オブジェクト/…

春なのでSpringの勉強3

昨日、Spring入門研修の最終日でした。 最終日はSpringの宣言トランザクションの機能とHibernateとの連携について勉強しました。 宣言トランザクションを使うことによってビジネスロジックからトランザクション系のコード(コミットとかロールバックとか)を…

HQLを使うとClassNotFoundExceptionが発生する

Hibernateの勉強が一通り終わったので、早速手持ちのフレームワークを改造してHibernateを使ってみることにしました。 データベースはHSQLDBを使うことにしました。 慣れるのに少し苦労しましたが何とか使えるようになりました。 DB環境も整ったしあとは動か…

O/Rマッピングとは何か?

HIBERNATE イン アクションソフトバンク クリエイティブこのアイテムの詳細を見る今使ってるFrameworkはデータベースまわりの機能が非常に弱い。 何とか改良したいなと、じゃあO/Rマッピングの勉強してみるかということで読みました。 Strutsインアクション…

フレームワーク改造計画

最近、Strutsベースの自前フレームワークの改造を少しづつ行っています。 パッケージ構成を整理したり、無駄な継承をやめたり、足りない機能を追加したり、HTMLからXHTMLに変更したり... とまぁ基本的なことを細々とやってるんですけどそれだけでも結構シ…

ハイバーネット

正しくはHibernateです。ハイバーネイトと読むようです。 どうも聞き間違えたみたいです。 O/Rマッピングフレームワークの名称です。 他にJDO、TorqueというO/Rマッピングのフレームワークが存在します。 今回使うかどうかはわかりませんが、O/Rマッピングに…