クラス AutoSelectImpl<T>
- java.lang.Object
-
- com.github.mygreen.sqlmapper.core.query.auto.AutoSelectImpl<T>
-
- 型パラメータ:
T- 処理対象となるエンティティの型
- すべての実装されたインタフェース:
AutoSelect<T>
public class AutoSelectImpl<T> extends Object implements AutoSelect<T>
抽出を行うSQLを自動生成するクエリの実装です。- 作成者:
- T.TSUCHIE
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 AutoSelectImpl(@NonNull SqlMapperContext context, @NonNull EntityPath<T> entityPath)AutoSelectImplを作成します。
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 <E1,E2>
AutoSelectImpl<T>associate(@NonNull EntityPath<E1> entityPath1, @NonNull EntityPath<E2> entityPath2, JoinAssociation.Associator<E1,E2> associator)テーブル結合の際に複数のテーブルのエンティティの構成定義を指定します。AutoSelectImpl<T>excludes(PropertyPath<?>... properties)指定のプロパティを抽出対象から除外します。AutoSelectImpl<T>fetchSize(int fetchSize)フェッチ数を設定します。AutoSelectImpl<T>forUpdate()FOR UPDATE を追加します。AutoSelectImpl<T>forUpdateNoWait()FOR UPDATE NOWAIT を追加します。AutoSelectImpl<T>forUpdateWait(int seconds)FOR UPDATE WAIT を追加します。Class<T>getBaseClass()SqlMapperContextgetContext()SqlMapperの設定情報。longgetCount()SQLが返す結果セットの行数を返します。EntityMetagetEntityMeta()Map<Class<?>,EntityMeta>getEntityMetaMap()エンティティタイプとメタ情報のマップEntityPath<T>getEntityPath()Set<PropertyPath<?>>getExcludesProperties()select句から除外するプロパティです。IntegergetFetchSize()SelectForUpdateTypegetForUpdateType()SELECT ~ FOR UPDATEのタイプです。intgetForUpdateWaitSeconds()SELECT ~ FOR UPDATEでの待機時間 (秒単位) です。StringgetHint()SQLのヒントです。Object[]getIdPropertyValues()検索条件で指定したIDプロパティの値の配列です。Set<PropertyPath<?>>getIncludesProperties()select句へ追加するプロパティです。List<JoinAssociation>getJoinAssociations()エンティティの構成定義の一覧ですList<JoinCondition>getJoinConditions()テーブルの結合条件の一覧です。intgetLimit()取得するレコード数の上限値です。IntegergetMaxRows()intgetOffset()取得するレコード数の開始位置です。Optional<T>getOptionalResult()検索してベースオブジェクトを返します。List<OrderSpecifier>getOrders()ソート順です。IntegergetQueryTimeout()List<T>getResultList()検索してベースオブジェクトを返します。Stream<T>getResultStream()問い合わせ結果をStreamで取得します。TgetSingleResult()検索してベースオブジェクトを返します。ObjectgetVersionPropertyValue()バージョンプロパティの値です。PredicategetWhere()検索条件です。AutoSelectImpl<T>hint(String hint)ヒントを設定します。AutoSelectImpl<T>id(@NonNull Object... idPropertyValues)WHERE句の条件にIdプロパティ(主キー)を指定します。AutoSelectImpl<T>includes(PropertyPath<?>... properties)指定のプロパティのみを抽出対象とします。<ENTITY extends EntityPath<?>>
AutoSelectImpl<T>innerJoin(ENTITY toEntityPath, JoinCondition.Conditioner<ENTITY> conditioner)FROM句で指定したテーブルと内部結合(INNERT JOIN)する条件を指定します。<ENTITY extends EntityPath<?>>
AutoSelectImpl<T>leftJoin(ENTITY toEntityPath, JoinCondition.Conditioner<ENTITY> conditioner)FROM句で指定したテーブルと左外部結合(LEFT OUTER JOIN)する条件を指定します。AutoSelectImpl<T>limit(int limit)抽出する行数を指定します。AutoSelectImpl<T>maxRows(int maxRows)最大行数を設定します。AutoSelectImpl<T>offset(int offset)抽出するデータの開始位置を指定します。AutoSelectImpl<T>orderBy(OrderSpecifier... orders)ソート順を指定します。AutoSelectImpl<T>queryTimeout(int seconds)クエリタイムアウトの秒数を設定します。AutoSelectImpl<T>version(@NonNull Object versionPropertyValue)WHERE句の条件にバージョンプロパティを指定します。AutoSelectImpl<T>where(@NonNull Predicate where)検索条件を指定します。
-
-
-
コンストラクタの詳細
-
AutoSelectImpl
public AutoSelectImpl(@NonNull @NonNull SqlMapperContext context, @NonNull @NonNull EntityPath<T> entityPath)AutoSelectImplを作成します。- パラメータ:
context- SqlMapperの設定情報。entityPath- マッピングするエンティティのメタモデル。
-
-
メソッドの詳細
-
queryTimeout
public AutoSelectImpl<T> queryTimeout(int seconds)
インタフェースからコピーされた説明:AutoSelectクエリタイムアウトの秒数を設定します。-1 を指定するとJDBC ドライバーのデフォルト値を使用します。
- 定義:
queryTimeoutインタフェース内AutoSelect<T>- パラメータ:
seconds- クエリタイムアウトの秒数- 戻り値:
- 自身のインスタンス。
-
fetchSize
public AutoSelectImpl<T> fetchSize(int fetchSize)
インタフェースからコピーされた説明:AutoSelectフェッチ数を設定します。これをデフォルト値よりも高く設定すると、大きな結果セットを処理する際に、メモリ消費を犠牲にして処理速度が向上します。
-1 を指定するとJDBC ドライバーのデフォルト値を使用します。
- 定義:
fetchSizeインタフェース内AutoSelect<T>- パラメータ:
fetchSize- フェッチ数- 戻り値:
- 自身のインスタンス。
-
maxRows
public AutoSelectImpl<T> maxRows(int maxRows)
インタフェースからコピーされた説明:AutoSelect最大行数を設定します。JDBCのStatementレベルで、結果セットのオブジェクトが含むことのできる最大行数を制限します。
制限値を超えた場合は通知なしの除外されます。RDMSでLIMIT句がサポートされていない場合に使用します。
LIMIT句がサポートされている場合は、AutoSelect.limit(int)を使用します。-1 を指定するとJDBC ドライバーのデフォルト値を使用します。
- 定義:
maxRowsインタフェース内AutoSelect<T>- パラメータ:
maxRows- 最大行数- 戻り値:
- 自身のインスタンス。
-
hint
public AutoSelectImpl<T> hint(String hint)
インタフェースからコピーされた説明:AutoSelectヒントを設定します。- 定義:
hintインタフェース内AutoSelect<T>- パラメータ:
hint- ヒント- 戻り値:
- このインスタンス自身
-
limit
public AutoSelectImpl<T> limit(int limit)
インタフェースからコピーされた説明:AutoSelect抽出する行数を指定します。- 定義:
limitインタフェース内AutoSelect<T>- パラメータ:
limit- 行数- 戻り値:
- このインスタンス自身
-
offset
public AutoSelectImpl<T> offset(int offset)
インタフェースからコピーされた説明:AutoSelect抽出するデータの開始位置を指定します。- 定義:
offsetインタフェース内AutoSelect<T>- パラメータ:
offset- 開始位置。0から始まります。- 戻り値:
- このインスタンス自身
-
includes
public AutoSelectImpl<T> includes(PropertyPath<?>... properties)
インタフェースからコピーされた説明:AutoSelect指定のプロパティのみを抽出対象とします。ID(主キー)の場合は、必ず抽出対象となります。
AutoSelect.excludes(PropertyPath...)と同時に指定した場合、AutoSelect.includes(PropertyPath...)が優先されます。- 定義:
includesインタフェース内AutoSelect<T>- パラメータ:
properties- 挿入対象のプロパティ情報。- 戻り値:
- 自身のインスタンス。
-
excludes
public AutoSelectImpl<T> excludes(PropertyPath<?>... properties)
インタフェースからコピーされた説明:AutoSelect指定のプロパティを抽出対象から除外します。ID(主キー)の場合は、必ず抽出対象となります。
AutoSelect.includes(PropertyPath...)と同時に指定した場合、AutoSelect.includes(PropertyPath...)が優先されます。- 定義:
excludesインタフェース内AutoSelect<T>- パラメータ:
properties- 除外対象のプロパティ情報。- 戻り値:
- 自身のインスタンス。
-
innerJoin
public <ENTITY extends EntityPath<?>> AutoSelectImpl<T> innerJoin(@NonNull ENTITY toEntityPath, @NonNull JoinCondition.Conditioner<ENTITY> conditioner)
インタフェースからコピーされた説明:AutoSelectFROM句で指定したテーブルと内部結合(INNERT JOIN)する条件を指定します。- 定義:
innerJoinインタフェース内AutoSelect<T>- 型パラメータ:
ENTITY- 結合先のテーブルのエンティティタイプ- パラメータ:
toEntityPath- 結合先テーブルのエンティティ情報conditioner- 結合条件の組み立て- 戻り値:
- 自身のインスタンス
-
leftJoin
public <ENTITY extends EntityPath<?>> AutoSelectImpl<T> leftJoin(@NonNull ENTITY toEntityPath, @NonNull JoinCondition.Conditioner<ENTITY> conditioner)
インタフェースからコピーされた説明:AutoSelectFROM句で指定したテーブルと左外部結合(LEFT OUTER JOIN)する条件を指定します。- 定義:
leftJoinインタフェース内AutoSelect<T>- 型パラメータ:
ENTITY- 結合先のテーブルのエンティティタイプ- パラメータ:
toEntityPath- 結合先テーブルのエンティティ情報conditioner- 結合条件の組み立て- 戻り値:
- 自身のインスタンス
-
associate
public <E1,E2> AutoSelectImpl<T> associate(@NonNull @NonNull EntityPath<E1> entityPath1, @NonNull @NonNull EntityPath<E2> entityPath2, @NonNull JoinAssociation.Associator<E1,E2> associator)
インタフェースからコピーされた説明:AutoSelectテーブル結合の際に複数のテーブルのエンティティの構成定義を指定します。OUTER JOINで関連先が存在しない場合も、各プロパティがnullの値が設定さたエンティティのインスタンスが渡されるため、主キーなどで判定して除外します。
例 :associate(c_, a_, (e1, e2) -> Optional.ofNullable(e2.getCustomerId()).ifPresent(c -> e1.setAddress(e2)))- 定義:
associateインタフェース内AutoSelect<T>- 型パラメータ:
E1- エンティティタイプ1E2- エンティティタイプ2- パラメータ:
entityPath1- エンティティ情報1entityPath2- エンティティ情報2associator- エンティティの構成定義- 戻り値:
- 自身のインスタンス
-
where
public AutoSelectImpl<T> where(@NonNull @NonNull Predicate where)
インタフェースからコピーされた説明:AutoSelect検索条件を指定します。- 定義:
whereインタフェース内AutoSelect<T>- パラメータ:
where- 検索条件。- 戻り値:
- 自身のインスタンス。
-
orderBy
public AutoSelectImpl<T> orderBy(OrderSpecifier... orders)
インタフェースからコピーされた説明:AutoSelectソート順を指定します。- 定義:
orderByインタフェース内AutoSelect<T>- パラメータ:
orders- ソートするロパティの並び順情報- 戻り値:
- 自身のインスタンス。
-
id
public AutoSelectImpl<T> id(@NonNull @NonNull Object... idPropertyValues)
インタフェースからコピーされた説明:AutoSelectWHERE句の条件にIdプロパティ(主キー)を指定します。- 定義:
idインタフェース内AutoSelect<T>- パラメータ:
idPropertyValues- IDプロパティの値。エンティティに定義している順で指定する必要があります。- 戻り値:
- 自身のインスタンス。
-
version
public AutoSelectImpl<T> version(@NonNull @NonNull Object versionPropertyValue)
インタフェースからコピーされた説明:AutoSelectWHERE句の条件にバージョンプロパティを指定します。- 定義:
versionインタフェース内AutoSelect<T>- パラメータ:
versionPropertyValue- バージョンプロパティの値。- 戻り値:
- 自身のインスタンス
-
forUpdate
public AutoSelectImpl<T> forUpdate()
インタフェースからコピーされた説明:AutoSelectFOR UPDATE を追加します。- 定義:
forUpdateインタフェース内AutoSelect<T>- 戻り値:
- このインスタンス自身。
-
forUpdateNoWait
public AutoSelectImpl<T> forUpdateNoWait()
インタフェースからコピーされた説明:AutoSelectFOR UPDATE NOWAIT を追加します。- 定義:
forUpdateNoWaitインタフェース内AutoSelect<T>- 戻り値:
- このインスタンス自身。
-
forUpdateWait
public AutoSelectImpl<T> forUpdateWait(int seconds)
FOR UPDATE WAIT を追加します。- 定義:
forUpdateWaitインタフェース内AutoSelect<T>- パラメータ:
seconds- ロックを獲得できるまでの最大待機時間(秒単位)- 戻り値:
- このインスタンス自身。
- 例外:
IllegalOperateException- DBMSがこの操作をサポートしていない場合にスローされます。
-
getCount
public long getCount()
インタフェースからコピーされた説明:AutoSelectSQLが返す結果セットの行数を返します。- 定義:
getCountインタフェース内AutoSelect<T>- 戻り値:
- SQLが返す結果セットの行数
-
getSingleResult
public T getSingleResult()
インタフェースからコピーされた説明:AutoSelect検索してベースオブジェクトを返します。- 定義:
getSingleResultインタフェース内AutoSelect<T>- 戻り値:
- ベースオブジェクト。
-
getOptionalResult
public Optional<T> getOptionalResult()
インタフェースからコピーされた説明:AutoSelect検索してベースオブジェクトを返します。- 定義:
getOptionalResultインタフェース内AutoSelect<T>- 戻り値:
- ベースオブジェクト。1件も対象がないときは空を返します。
-
getResultList
public List<T> getResultList()
インタフェースからコピーされた説明:AutoSelect検索してベースオブジェクトを返します。- 定義:
getResultListインタフェース内AutoSelect<T>- 戻り値:
- 検索してヒットした複数のベースオブジェクト。1件も対象がないときは空のリストを返します。
-
getResultStream
public Stream<T> getResultStream()
インタフェースからコピーされた説明:AutoSelect問い合わせ結果をStreamで取得します。 問い合わせ結果全体のリストを作成しないため、問い合わせ結果が膨大になる場合でもメモリ消費量を抑えることが出来ます。- 定義:
getResultStreamインタフェース内AutoSelect<T>- 戻り値:
- 問い合わせの結果。
-
getContext
public SqlMapperContext getContext()
SqlMapperの設定情報。
-
getEntityPath
public EntityPath<T> getEntityPath()
-
getEntityMeta
public EntityMeta getEntityMeta()
-
getEntityMetaMap
public Map<Class<?>,EntityMeta> getEntityMetaMap()
エンティティタイプとメタ情報のマップ
-
getQueryTimeout
public Integer getQueryTimeout()
-
getFetchSize
public Integer getFetchSize()
-
getMaxRows
public Integer getMaxRows()
-
getHint
public String getHint()
SQLのヒントです。
-
getLimit
public int getLimit()
取得するレコード数の上限値です。負の値の時は無視します。
-
getOffset
public int getOffset()
取得するレコード数の開始位置です。負の値の時は無視します。
-
getIncludesProperties
public Set<PropertyPath<?>> getIncludesProperties()
select句へ追加するプロパティです。
-
getExcludesProperties
public Set<PropertyPath<?>> getExcludesProperties()
select句から除外するプロパティです。
-
getJoinConditions
public List<JoinCondition> getJoinConditions()
テーブルの結合条件の一覧です。
-
getJoinAssociations
public List<JoinAssociation> getJoinAssociations()
エンティティの構成定義の一覧です
-
getWhere
public Predicate getWhere()
検索条件です。
-
getOrders
public List<OrderSpecifier> getOrders()
ソート順です。
-
getIdPropertyValues
public Object[] getIdPropertyValues()
検索条件で指定したIDプロパティの値の配列です。
-
getVersionPropertyValue
public Object getVersionPropertyValue()
バージョンプロパティの値です。
-
getForUpdateType
public SelectForUpdateType getForUpdateType()
SELECT ~ FOR UPDATEのタイプです。
-
getForUpdateWaitSeconds
public int getForUpdateWaitSeconds()
SELECT ~ FOR UPDATEでの待機時間 (秒単位) です。
-
-