クラス AutoSelectImpl<T>

  • 型パラメータ:
    T - 処理対象となるエンティティの型
    すべての実装されたインタフェース:
    AutoSelect<T>

    public class AutoSelectImpl<T>
    extends Object
    implements AutoSelect<T>
    抽出を行うSQLを自動生成するクエリの実装です。
    作成者:
    T.TSUCHIE
    • コンストラクタの詳細

      • 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から始まります。
        戻り値:
        このインスタンス自身
      • innerJoin

        public <ENTITY extends EntityPath<?>> AutoSelectImpl<T> innerJoin​(@NonNull
                                                                          ENTITY toEntityPath,
                                                                          @NonNull
                                                                          JoinCondition.Conditioner<ENTITY> conditioner)
        インタフェースからコピーされた説明: AutoSelect
        FROM句で指定したテーブルと内部結合(INNERT JOIN)する条件を指定します。
        定義:
        innerJoin インタフェース内 AutoSelect<T>
        型パラメータ:
        ENTITY - 結合先のテーブルのエンティティタイプ
        パラメータ:
        toEntityPath - 結合先テーブルのエンティティ情報
        conditioner - 結合条件の組み立て
        戻り値:
        自身のインスタンス
      • leftJoin

        public <ENTITY extends EntityPath<?>> AutoSelectImpl<T> leftJoin​(@NonNull
                                                                         ENTITY toEntityPath,
                                                                         @NonNull
                                                                         JoinCondition.Conditioner<ENTITY> conditioner)
        インタフェースからコピーされた説明: AutoSelect
        FROM句で指定したテーブルと左外部結合(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 - エンティティタイプ1
        E2 - エンティティタイプ2
        パラメータ:
        entityPath1 - エンティティ情報1
        entityPath2 - エンティティ情報2
        associator - エンティティの構成定義
        戻り値:
        自身のインスタンス
      • 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)
        インタフェースからコピーされた説明: AutoSelect
        WHERE句の条件にIdプロパティ(主キー)を指定します。
        定義:
        id インタフェース内 AutoSelect<T>
        パラメータ:
        idPropertyValues - IDプロパティの値。エンティティに定義している順で指定する必要があります。
        戻り値:
        自身のインスタンス。
      • version

        public AutoSelectImpl<T> version​(@NonNull
                                         @NonNull Object versionPropertyValue)
        インタフェースからコピーされた説明: AutoSelect
        WHERE句の条件にバージョンプロパティを指定します。
        定義:
        version インタフェース内 AutoSelect<T>
        パラメータ:
        versionPropertyValue - バージョンプロパティの値。
        戻り値:
        自身のインスタンス
      • forUpdate

        public AutoSelectImpl<T> forUpdate()
        インタフェースからコピーされた説明: AutoSelect
        FOR UPDATE を追加します。
        定義:
        forUpdate インタフェース内 AutoSelect<T>
        戻り値:
        このインスタンス自身。
      • forUpdateNoWait

        public AutoSelectImpl<T> forUpdateNoWait()
        インタフェースからコピーされた説明: AutoSelect
        FOR 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()
        インタフェースからコピーされた説明: AutoSelect
        SQLが返す結果セットの行数を返します。
        定義:
        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>
        戻り値:
        問い合わせの結果。
      • getBaseClass

        public Class<T> getBaseClass()
      • 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()
        検索条件です。
      • getIdPropertyValues

        public Object[] getIdPropertyValues()
        検索条件で指定したIDプロパティの値の配列です。
      • getVersionPropertyValue

        public Object getVersionPropertyValue()
        バージョンプロパティの値です。
      • getForUpdateType

        public SelectForUpdateType getForUpdateType()
        SELECT ~ FOR UPDATEのタイプです。
      • getForUpdateWaitSeconds

        public int getForUpdateWaitSeconds()
        SELECT ~ FOR UPDATEでの待機時間 (秒単位) です。