|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
T
- 戻り値のベースの型です。S
- Select
のサブタイプです。public interface Select<T,S extends Select<T,S>>
検索のベースとなるインターフェースです。
メソッドの概要 | ||
---|---|---|
S |
disallowNoResult()
検索結果がなかった場合、 NoResultException をスローするよう設定します。 |
|
S |
fetchSize(int fetchSize)
フェッチ数を設定します。 |
|
java.util.List<T> |
getResultList()
検索してベースオブジェクトのリストを返します。 |
|
T |
getSingleResult()
検索してベースオブジェクトを返します。 |
|
|
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 |
メソッドの詳細 |
---|
S maxRows(int maxRows)
maxRows
- 最大行数
Statement.setMaxRows(int)
S fetchSize(int fetchSize)
fetchSize
- フェッチ数
Statement.setFetchSize(int)
S limit(int limit)
limit
- リミット
S offset(int offset)
offset
- オフセット
S disallowNoResult()
NoResultException
をスローするよう設定します。
S lob()
このメソッドの呼び出しは、戻り値またはその要素がString
型の場合に有効です。
S temporal(TemporalType temporalType)
TemporalType
を指定します。
このメソッドの呼び出しは、戻り値またはその要素がDate
もしくはCalendar
型の場合に有効です。
temporalType
- 時制の種別
java.util.List<T> getResultList() throws OrderByNotFoundRuntimeException
ベースオブジェクトのリスト。
1件も対象がないときはnullではなく空のリストを返します。
OrderByNotFoundRuntimeException
- ページング処理でorder by
が見つからない場合
NoResultException
- disallowNoResult()
が呼び出された場合で、検索結果がなかった場合T getSingleResult() throws SNonUniqueResultException
ベースオブジェクト。
1件も対象がないときはnullを返します。
SNonUniqueResultException
- 検索結果がユニークでない場合。
NoResultException
- disallowNoResult()
が呼び出された場合で、検索結果がなかった場合<RESULT> RESULT iterate(IterationCallback<T,RESULT> callback)
問い合わせ結果に含まれる、 基点となるエンティティ(JdbcManager.from(Class)
で指定したクラス)またはDTO(JdbcManager.selectBySql(Class, String, Object...)
等で指定したクラス)ごとに、
IterationCallback.iterate(Object, IterationContext)
メソッドに通知されます。
問い合わせ結果全体のリストを作成しないため、 問い合わせ結果が膨大になる場合でもメモリ消費量を抑えることが出来ます。
問い合わせ結果は基点となるエンティティでソートされている必要があります. 基点となるエンティティが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
- コールバック
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |