インタフェース AutoSelect<T>
-
- 型パラメータ:
T- 処理対象となるエンティティの型
- 既知の実装クラスのリスト:
AutoSelectImpl
public interface AutoSelect<T>抽出を行うSQLを自動生成するクエリです。- バージョン:
- 0.3
- 作成者:
- T.TSUCHIE
-
-
メソッドの概要
すべてのメソッド インスタンス・メソッド abstractメソッド 修飾子とタイプ メソッド 説明 <E1,E2>
AutoSelect<T>associate(EntityPath<E1> entityPath1, EntityPath<E2> entityPath2, JoinAssociation.Associator<E1,E2> associator)テーブル結合の際に複数のテーブルのエンティティの構成定義を指定します。AutoSelect<T>excludes(PropertyPath<?>... properties)指定のプロパティを抽出対象から除外します。AutoSelect<T>fetchSize(int fetchSize)フェッチ数を設定します。AutoSelect<T>forUpdate()FOR UPDATE を追加します。AutoSelect<T>forUpdateNoWait()FOR UPDATE NOWAIT を追加します。AutoSelect<T>forUpdateWait(int seconds)FOR UPDATE WAIT を追加します。longgetCount()SQLが返す結果セットの行数を返します。Optional<T>getOptionalResult()検索してベースオブジェクトを返します。List<T>getResultList()検索してベースオブジェクトを返します。Stream<T>getResultStream()問い合わせ結果をStreamで取得します。TgetSingleResult()検索してベースオブジェクトを返します。AutoSelect<T>hint(String hint)ヒントを設定します。AutoSelect<T>id(Object... idPropertyValues)WHERE句の条件にIdプロパティ(主キー)を指定します。AutoSelect<T>includes(PropertyPath<?>... properties)指定のプロパティのみを抽出対象とします。<ENTITY extends EntityPath<?>>
AutoSelect<T>innerJoin(ENTITY toEntityPath, JoinCondition.Conditioner<ENTITY> conditioner)FROM句で指定したテーブルと内部結合(INNERT JOIN)する条件を指定します。<ENTITY extends EntityPath<?>>
AutoSelect<T>leftJoin(ENTITY toEntityPath, JoinCondition.Conditioner<ENTITY> conditioner)FROM句で指定したテーブルと左外部結合(LEFT OUTER JOIN)する条件を指定します。AutoSelect<T>limit(int limit)抽出する行数を指定します。AutoSelect<T>maxRows(int maxRows)最大行数を設定します。AutoSelect<T>offset(int offset)抽出するデータの開始位置を指定します。AutoSelect<T>orderBy(OrderSpecifier... orders)ソート順を指定します。AutoSelect<T>queryTimeout(int seconds)クエリタイムアウトの秒数を設定します。AutoSelect<T>version(Object versionPropertyValue)WHERE句の条件にバージョンプロパティを指定します。AutoSelect<T>where(Predicate where)検索条件を指定します。
-
-
-
メソッドの詳細
-
queryTimeout
AutoSelect<T> queryTimeout(int seconds)
クエリタイムアウトの秒数を設定します。-1 を指定するとJDBC ドライバーのデフォルト値を使用します。
- パラメータ:
seconds- クエリタイムアウトの秒数- 戻り値:
- 自身のインスタンス。
- 導入されたバージョン:
- 0.3
-
fetchSize
AutoSelect<T> fetchSize(int fetchSize)
フェッチ数を設定します。これをデフォルト値よりも高く設定すると、大きな結果セットを処理する際に、メモリ消費を犠牲にして処理速度が向上します。
-1 を指定するとJDBC ドライバーのデフォルト値を使用します。
- パラメータ:
fetchSize- フェッチ数- 戻り値:
- 自身のインスタンス。
- 導入されたバージョン:
- 0.3
-
maxRows
AutoSelect<T> maxRows(int maxRows)
最大行数を設定します。JDBCのStatementレベルで、結果セットのオブジェクトが含むことのできる最大行数を制限します。
制限値を超えた場合は通知なしの除外されます。RDMSでLIMIT句がサポートされていない場合に使用します。
LIMIT句がサポートされている場合は、limit(int)を使用します。-1 を指定するとJDBC ドライバーのデフォルト値を使用します。
- パラメータ:
maxRows- 最大行数- 戻り値:
- 自身のインスタンス。
- 導入されたバージョン:
- 0.3
-
hint
AutoSelect<T> hint(String hint)
ヒントを設定します。- パラメータ:
hint- ヒント- 戻り値:
- このインスタンス自身
-
limit
AutoSelect<T> limit(int limit)
抽出する行数を指定します。- パラメータ:
limit- 行数- 戻り値:
- このインスタンス自身
-
offset
AutoSelect<T> offset(int offset)
抽出するデータの開始位置を指定します。- パラメータ:
offset- 開始位置。0から始まります。- 戻り値:
- このインスタンス自身
-
includes
AutoSelect<T> includes(PropertyPath<?>... properties)
指定のプロパティのみを抽出対象とします。ID(主キー)の場合は、必ず抽出対象となります。
excludes(PropertyPath...)と同時に指定した場合、includes(PropertyPath...)が優先されます。- パラメータ:
properties- 挿入対象のプロパティ情報。- 戻り値:
- 自身のインスタンス。
- 例外:
IllegalOperateException- エンティティに存在しないプロパティ名を指定した場合にスローされます。
-
excludes
AutoSelect<T> excludes(PropertyPath<?>... properties)
指定のプロパティを抽出対象から除外します。ID(主キー)の場合は、必ず抽出対象となります。
includes(PropertyPath...)と同時に指定した場合、includes(PropertyPath...)が優先されます。- パラメータ:
properties- 除外対象のプロパティ情報。- 戻り値:
- 自身のインスタンス。
-
innerJoin
<ENTITY extends EntityPath<?>> AutoSelect<T> innerJoin(ENTITY toEntityPath, JoinCondition.Conditioner<ENTITY> conditioner)
FROM句で指定したテーブルと内部結合(INNERT JOIN)する条件を指定します。- 型パラメータ:
ENTITY- 結合先のテーブルのエンティティタイプ- パラメータ:
toEntityPath- 結合先テーブルのエンティティ情報conditioner- 結合条件の組み立て- 戻り値:
- 自身のインスタンス
-
leftJoin
<ENTITY extends EntityPath<?>> AutoSelect<T> leftJoin(ENTITY toEntityPath, JoinCondition.Conditioner<ENTITY> conditioner)
FROM句で指定したテーブルと左外部結合(LEFT OUTER JOIN)する条件を指定します。- 型パラメータ:
ENTITY- 結合先のテーブルのエンティティタイプ- パラメータ:
toEntityPath- 結合先テーブルのエンティティ情報conditioner- 結合条件の組み立て- 戻り値:
- 自身のインスタンス
- 例外:
IllegalOperateException- 既に同じ組み合わせのエンティティ(テーブル)を指定しているときにスローされます。
-
associate
<E1,E2> AutoSelect<T> associate(EntityPath<E1> entityPath1, EntityPath<E2> entityPath2, JoinAssociation.Associator<E1,E2> associator)
テーブル結合の際に複数のテーブルのエンティティの構成定義を指定します。OUTER JOINで関連先が存在しない場合も、各プロパティがnullの値が設定さたエンティティのインスタンスが渡されるため、主キーなどで判定して除外します。
例 :associate(c_, a_, (e1, e2) -> Optional.ofNullable(e2.getCustomerId()).ifPresent(c -> e1.setAddress(e2)))- 型パラメータ:
E1- エンティティタイプ1E2- エンティティタイプ2- パラメータ:
entityPath1- エンティティ情報1entityPath2- エンティティ情報2associator- エンティティの構成定義- 戻り値:
- 自身のインスタンス
- 例外:
IllegalOperateException- 既に同じ組み合わせのエンティティの構成定義を指定しているときにスローされます。
-
where
AutoSelect<T> where(Predicate where)
検索条件を指定します。- パラメータ:
where- 検索条件。- 戻り値:
- 自身のインスタンス。
-
orderBy
AutoSelect<T> orderBy(OrderSpecifier... orders)
ソート順を指定します。- パラメータ:
orders- ソートするロパティの並び順情報- 戻り値:
- 自身のインスタンス。
-
id
AutoSelect<T> id(Object... idPropertyValues)
WHERE句の条件にIdプロパティ(主キー)を指定します。- パラメータ:
idPropertyValues- IDプロパティの値。エンティティに定義している順で指定する必要があります。- 戻り値:
- 自身のインスタンス。
- 例外:
IllegalOperateException- 指定したIDの個数とエンティティの個数と一致しないときにスローされます。
-
version
AutoSelect<T> version(Object versionPropertyValue)
WHERE句の条件にバージョンプロパティを指定します。- パラメータ:
versionPropertyValue- バージョンプロパティの値。- 戻り値:
- 自身のインスタンス
- 例外:
IllegalOperateException- エンティティにバージョンキーが定義されていないときにスローされます。
-
forUpdate
AutoSelect<T> forUpdate()
FOR UPDATE を追加します。- 戻り値:
- このインスタンス自身。
- 例外:
IllegalOperateException- DBMSがこの操作をサポートしていない場合にスローされます。
-
forUpdateNoWait
AutoSelect<T> forUpdateNoWait()
FOR UPDATE NOWAIT を追加します。- 戻り値:
- このインスタンス自身。
- 例外:
IllegalOperateException- DBMSがこの操作をサポートしていない場合にスローされます。
-
forUpdateWait
AutoSelect<T> forUpdateWait(int seconds)
FOR UPDATE WAIT を追加します。- パラメータ:
seconds- ロックを獲得できるまでの最大待機時間(秒単位)- 戻り値:
- このインスタンス自身。
- 例外:
IllegalOperateException- DBMSがこの操作をサポートしていない場合にスローされます。
-
getCount
long getCount()
SQLが返す結果セットの行数を返します。- 戻り値:
- SQLが返す結果セットの行数
-
getSingleResult
T getSingleResult()
検索してベースオブジェクトを返します。- 戻り値:
- ベースオブジェクト。
- 例外:
org.springframework.dao.EmptyResultDataAccessException- 1件も見つからなかった場合にスローされます。org.springframework.dao.IncorrectResultSizeDataAccessException- 2件以上見つかった場合にスローされます。
-
getOptionalResult
Optional<T> getOptionalResult()
検索してベースオブジェクトを返します。- 戻り値:
- ベースオブジェクト。1件も対象がないときは空を返します。
- 例外:
org.springframework.dao.IncorrectResultSizeDataAccessException- 2件以上見つかった場合にスローされます。
-
getResultList
List<T> getResultList()
検索してベースオブジェクトを返します。- 戻り値:
- 検索してヒットした複数のベースオブジェクト。1件も対象がないときは空のリストを返します。
-
-