インタフェース AutoSelect<T>

  • 型パラメータ:
    T - 処理対象となるエンティティの型
    既知の実装クラスのリスト:
    AutoSelectImpl

    public interface AutoSelect<T>
    抽出を行うSQLを自動生成するクエリです。
    作成者:
    T.TSUCHIE
    • メソッドの詳細

      • hint

        AutoSelect<T> hint​(String hint)
        ヒントを設定します。
        パラメータ:
        hint - ヒント
        戻り値:
        このインスタンス自身
      • limit

        AutoSelect<T> limit​(int limit)
        抽出する行数を指定します。
        パラメータ:
        limit - 行数
        戻り値:
        このインスタンス自身
      • offset

        AutoSelect<T> offset​(int offset)
        抽出するデータの開始位置を指定します。
        パラメータ:
        offset - 開始位置。
        戻り値:
        このインスタンス自身
      • includes

        AutoSelect<T> includes​(PropertyPath<?>... properties)
        指定のプロパティのみを挿入対象とします。

        アノテーション @Column(insertable = false) が設定されているプロパティは対象外となります。

        パラメータ:
        properties - 挿入対象のプロパティ情報。
        戻り値:
        自身のインスタンス。
        例外:
        IllegalOperateException - エンティティに存在しないプロパティ名を指定した場合にスローされます。
      • excludes

        AutoSelect<T> excludes​(PropertyPath<?>... properties)
        指定のプロパティを挿入対象から除外します。
        パラメータ:
        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)
        テーブル結合の際に複数のテーブルのエンティティの構成定義を指定します。
        型パラメータ:
        E1 - エンティティタイプ1
        E2 - エンティティタイプ2
        パラメータ:
        entityPath1 - エンティティ情報1
        entityPath2 - エンティティ情報2
        associator - エンティティの構成定義
        戻り値:
        自身のインスタンス
        例外:
        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.IncorrectResultSizeDataAccessException - 1件も見つからない場合、2件以上見つかった場合にスローされます。
      • getOptionalResult

        Optional<T> getOptionalResult()
        検索してベースオブジェクトを返します。
        戻り値:
        ベースオブジェクト。1件も対象がないときは空を返します。
      • getResultList

        List<T> getResultList()
        検索してベースオブジェクトを返します。
        戻り値:
        検索してヒットした複数のベースオブジェクト。1件も対象がないときは空のリストを返します。
      • getResultStream

        Stream<T> getResultStream()
        問い合わせ結果をStream で取得します。 問い合わせ結果全体のリストを作成しないため、問い合わせ結果が膨大になる場合でもメモリ消費量を抑えることが出来ます。
        戻り値:
        問い合わせの結果。