- PR -

hibernateでSQL結果件数範囲指定

1
投稿者投稿内容
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2004-08-08 11:24

 こんにちは。

 現在hibernateを使用してデータ検索を処理を書いているのですが、
例えば検索結果の150件〜200件目を取得したい場合に、Criteriaで
何かしら書く方法が無いかと悩んでいます。

 データMAX件数指定は
setMaxResults(int maxResults)
 というメソッドがあり、これを使用すると例えばORACLEでは
SELECT ... FROM (SELECT ... FROM ... ORDER BY ...) WHERE ROWNUM < maxResults
 の様なSQLを発行してくれる様です。

 ここでCriteriaを使用して
WHERE ROWNUM BETWEEN A AND B
 の様なSQLを発行させる方法は無いでしょうか?

 直接SQLでROWNUMと書いてしまうとORACLE依存になってしまう為、
できればCriteriaを使用できないかと悩んでいます。そうすれば
hibernateの方言クラスによりデータベースの変更に耐えられる仕様
になるかと思っております。

 色々API説明書を読んだのですが、該当する様なクラス、メソッド
は見つけられませんでした。どなたかhibernateに詳しい方がおりま
したら可否だけでもご教授いただけないでしょうか。

 よろしく御願いいたします。

りぼ
会議室デビュー日: 2004/06/15
投稿数: 8
投稿日時: 2004-08-08 13:58
引用:

matuさんの書き込み (2004-08-08 11:24) より:

 こんにちは。

 現在hibernateを使用してデータ検索を処理を書いているのですが、
例えば検索結果の150件〜200件目を取得したい場合に、Criteriaで
何かしら書く方法が無いかと悩んでいます。




hibernateは詳しくないですが、
setFirstResult()メソッドが使えるのでは?


[ メッセージ編集済み 編集者: りぼ 編集日時 2004-08-08 13:59 ]
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2004-08-08 17:35
引用:


hibernateは詳しくないですが、
setFirstResult()メソッドが使えるのでは?




 りぼさんこんにちは。
 setMaxResultsとsetFirstResultを組合せるのですね。
 私の発想足らずでしたね。。

 とても助かりました。ありがとうございます
1

スキルアップ/キャリアアップ(JOB@IT)