« 2008年04月 | メイン | 2008年06月 »

2008年05月 アーカイブ

2008年05月27日

件数の指定

hibernateではsetFirstResult、setMaxResultsなどで取得時の件数を指定できます。
SQLにlimitやoffsetが付いた形で発行されるので、結果セットが膨らまず、有効です。
しかし、コレクションに対してfetch joinしている場合には件数が狂います。
対策としてはlazyにするか、結果セットのリストを自分でsubListする、などになります。

DetachedCriteriaとCriteria

通常、CriteriaはSessionオブジェクトから生成します。DetachedCriteriaは、HibernateのSessionオブジェクトのインスタンスを参照することが出来ない状況下でCriteriaを構築するために用意されています。
ただしバージョンによってはCriteriaで出来ることがDetachedCriteriaで出来ないことがあります。たとえばDetachedCriteriaではcreateCriteria, createAlias時に結合方法の指定が出来ない、などです。Hibernateのバージョン3.2.6以降では対応されていますので、3.2.6以降を利用するとよいと思います。バージョン3.2.6では、DetachedCriteriaとCriteriaとのインタフェースの差異がなくなっているようです。

Add outer join support for aliases on DetachedCriteria

なお、setFetchModeでの指定は可能ですので、こちらで何とかするという方法もあります。

About 2008年05月

2008年05月にブログ「GrandNature」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2008年04月です。

次のアーカイブは2008年06月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。