org.seasar.extension.jdbc
インタフェース Select<T,S extends Select<T,S>>

型パラメータ:
T - 戻り値のベースの型です。
S - Selectのサブタイプです。
すべてのスーパーインタフェース:
Query<S>
既知のサブインタフェースの一覧:
AutoSelect<T>, SqlFileSelect<T>, SqlSelect<T>
既知の実装クラスの一覧:
AbstractSelect, AbstractSqlSelect, AutoSelectImpl, SqlFileSelectImpl, SqlSelectImpl

public interface Select<T,S extends Select<T,S>>
extends Query<S>

検索のベースとなるインターフェースです。

作成者:
higa

メソッドの概要
 S disallowNoResult()
          検索結果がなかった場合、NoResultExceptionをスローするよう設定します。
 S fetchSize(int fetchSize)
          フェッチ数を設定します。
 java.util.List<T> getResultList()
          検索してベースオブジェクトのリストを返します。
 T getSingleResult()
          検索してベースオブジェクトを返します。
<RESULT> RESULT
iterate(IterationCallback<T,RESULT> callback)
          問い合わせ結果を一件ごとにコールバックに通知します。
 S limit(int limit)
          リミットを設定します。
 S lob()
          戻り値またはその要素がLOBであることを指定します。
 S maxRows(int maxRows)
          最大行数を設定します。
 S offset(int offset)
          オフセットを設定します。
 S temporal(TemporalType temporalType)
          戻り値またはその要素のTemporalTypeを指定します。
 
インタフェース org.seasar.extension.jdbc.Query から継承されたメソッド
callerClass, callerMethodName, queryTimeout
 

メソッドの詳細

maxRows

S maxRows(int maxRows)
最大行数を設定します。

パラメータ:
maxRows - 最大行数
戻り値:
このインスタンス自身
関連項目:
Statement.setMaxRows(int)

fetchSize

S fetchSize(int fetchSize)
フェッチ数を設定します。

パラメータ:
fetchSize - フェッチ数
戻り値:
このインスタンス自身
関連項目:
Statement.setFetchSize(int)

limit

S limit(int limit)
リミットを設定します。

パラメータ:
limit - リミット
戻り値:
このインスタンス自身

offset

S offset(int offset)
オフセットを設定します。

パラメータ:
offset - オフセット
戻り値:
このインスタンス自身

disallowNoResult

S disallowNoResult()
検索結果がなかった場合、NoResultExceptionをスローするよう設定します。

戻り値:
このインスタンス自身

lob

S lob()
戻り値またはその要素がLOBであることを指定します。

このメソッドの呼び出しは、戻り値またはその要素がString型の場合に有効です。

戻り値:
このインスタンス自身

temporal

S temporal(TemporalType temporalType)
戻り値またはその要素のTemporalTypeを指定します。

このメソッドの呼び出しは、戻り値またはその要素がDateもしくはCalendar型の場合に有効です。

パラメータ:
temporalType - 時制の種別
戻り値:
このインスタンス自身

getResultList

java.util.List<T> getResultList()
                                throws OrderByNotFoundRuntimeException
検索してベースオブジェクトのリストを返します。

戻り値:

ベースオブジェクトのリスト。

1件も対象がないときはnullではなく空のリストを返します。

例外:
OrderByNotFoundRuntimeException - ページング処理でorder byが見つからない場合
NoResultException - disallowNoResult()が呼び出された場合で、検索結果がなかった場合

getSingleResult

T getSingleResult()
                  throws SNonUniqueResultException
検索してベースオブジェクトを返します。

戻り値:

ベースオブジェクト。

1件も対象がないときはnullを返します。

例外:
SNonUniqueResultException - 検索結果がユニークでない場合。
NoResultException - disallowNoResult()が呼び出された場合で、検索結果がなかった場合

iterate

<RESULT> RESULT iterate(IterationCallback<T,RESULT> callback)
問い合わせ結果を一件ごとにコールバックに通知します。

問い合わせ結果に含まれる、 基点となるエンティティ(JdbcManager.from(Class)で指定したクラス)またはDTO(JdbcManager.selectBySql(Class, String, Object...)等で指定したクラス)ごとに、 IterationCallback.iterate(Object, IterationContext)メソッドに通知されます。 問い合わせ結果全体のリストを作成しないため、 問い合わせ結果が膨大になる場合でもメモリ消費量を抑えることが出来ます。

SQL自動生成による問い合わせの場合

問い合わせ結果は基点となるエンティティでソートされている必要があります. 基点となるエンティティがAで、1対多の関連を持つエンティティBを結合した問い合わせの場合、 結果セットは以下のような並びでなくてはなりません。

A B
A1 B1
A1 B2
A2 B1
A2 B2

上記の問い合わせ結果の場合、 IterationCallback.iterate(Object, IterationContext)メソッドは2回呼び出されます。 ただし,A1に関連づけられたB1およびB2と、A1に関連づけられたB1およびB2は同一のインスタンスではなく、 別のインスタンスになります。

A B
A1 B1
A2 B1
A1 B2
A2 B2

上記の問い合わせ結果の場合、 IterationCallback.iterate(Object, IterationContext)メソッドは4回呼び出されてしまいます。

型パラメータ:
RESULT - 戻り値の型
パラメータ:
callback - コールバック
戻り値:
コールバックが最後に返した結果


Copyright © 2004-2014 The Seasar Foundation. All Rights Reserved.