クラス QueryBuilder


  • public class QueryBuilder
    extends java.lang.Object

    クエリ生成クラス

     Criteriaインスタンスからデータベースに発行するクエリを生成する処理を担当するクラスです。
     エンティティマネージャは本クラスに実装されたメソッドを使用して以下の情報を生成し、
     クエリインスタンスを生成します。
        1. クエリ種別
        2. SQL文
        3. マッピングエンティティクラス
        4. データベース接続
     
    • フィールドの詳細

      • _criteria

        protected Criteria _criteria
        Criteriaインスタンス
      • _queryType

        protected QueryType _queryType
        クエリ種別
    • コンストラクタの詳細

      • QueryBuilder

        public QueryBuilder()

        コンストラクタ

      • QueryBuilder

        public QueryBuilder​(Criteria criteria)

        コンストラクタ

        パラメータ:
        criteria - Criteriaインスタンス
    • メソッドの詳細

      • judgeQueryType

        public QueryType judgeQueryType()

        クエリ種別判定

         Criteriaのクエリ情報からクエリ種別(SELECT・INSERT・UPDATE・DELETE)を判定する。
         
        戻り値:
        クエリ種別
      • judgeQueryType

        public QueryType judgeQueryType​(java.lang.String sql)

        クエリ種別判定

         SQL文からクエリ種別(SELECT・INSERT・UPDATE・DELETE)を判定する。
         
        パラメータ:
        sql - SQL文
        戻り値:
        クエリ種別
      • createSql

        public java.lang.String createSql()

        SQL文生成

         Criteriaのクエリ情報からデータベースに発行するSQL文を生成する。
         
        戻り値:
        SQL文
      • judgeEntityClass

        public java.lang.Class<?> judgeEntityClass()

        エンティティクラス判定

         Criteriaのクエリ情報から、ROWデータをマッピングするエンティティクラスを判定する。
         
        戻り値:
        ROWデータをマッピングするエンティティクラス
      • isFieldAll

        protected boolean isFieldAll​(java.util.List<?> selectList)

        検索指定が全てフィールドか判定

         Criteria.select(Object...)で指定された検索カラムが全てフィールドかを判定する。
         
        パラメータ:
        selectList - 指定検索カラムリスト
        戻り値:
        boolean true : 全てフィールド false : 上記以外
      • isSameEntity

        protected boolean isSameEntity​(java.util.List<?> selectList)

        検索指定の全てフィールドか同じエンティティか判定

         Criteria.select(Object...)で指定された検索カラムが全て同じエンティティクラスのフィールドかを判定する。
         
        パラメータ:
        selectList - 指定検索カラムリスト
        戻り値:
        boolean true : 全て同じエンティティクラス false : 上記以外
      • generateSelectQuery

        protected java.lang.String generateSelectQuery()

        SELECT文生成

         クエリ種別がSELECTの場合に、Criteriaのクエリ情報から発行するSELECT文を生成する。
         
        戻り値:
        SELECT文
      • createSelectColumn

        protected java.lang.String createSelectColumn()

        検索するカラムリストを生成

         Criteriaのクエリ情報(SELECTリスト)から、検索するカラムリストを生成する。
         
        戻り値:
        検索するカラムリスト
      • getColumns

        protected java.lang.String getColumns​(java.util.List<?> selectList)

        検索カラムリストを取得

         Criteria.select(Object...)で指定された検索カラムから、検索カラムリストを取得する。
         指定する検索カラムは以下のクラスのみ許可される。
         1. java.lang.reflect.Field
         2. net.skuratani.simpleorm4j.expression.Expression
         ※ 直接SQL上のカラムを文字列で指定した場合は、空指定に変換される。
         
        パラメータ:
        selectList - 指定された検索カラムリスト
        戻り値:
        検索カラムリスト
      • getColumnsInClass

        protected java.lang.String getColumnsInClass​(java.lang.Class<?> clazz)

        エンティティクラスから検索カラムリストを取得

         CriteriaのSELECTリスト情報に設定されたエンティティクラスから、検索カラムリストを取得する。
         
        パラメータ:
        clazz - エンティティクラス
        戻り値:
        エンティティクラスから抽出した検索カラムリスト
      • getFromTable

        protected java.lang.String getFromTable()

        検索テーブル名取得

         Criteriaのクエリ情報から、検索テーブル名を取得する。
         
        戻り値:
        検索テーブル名
      • createJoinExpression

        protected java.lang.String createJoinExpression()

        結合条件生成

         Criteriaのクエリ情報から、テーブル結合条件式を生成する。
         
        戻り値:
        検索条件式
      • createWhereExpression

        protected java.lang.String createWhereExpression()

        検索条件生成

         Criteriaのクエリ情報から、検索条件式を生成する。
         
        戻り値:
        検索条件式
      • createGroupByExpression

        protected java.lang.String createGroupByExpression()

        グルーピング条件生成

         Criteriaのクエリ情報から、グルーピング条件式を生成する。
         
        戻り値:
        グルーピング条件式
      • createHavingExpression

        protected java.lang.String createHavingExpression()

        集約検索条件生成

         Criteriaのクエリ情報から、集約検索条件式を生成する。
         
        戻り値:
        検索条件式
      • createOrderByExpression

        protected java.lang.String createOrderByExpression()

        ソート条件生成

         Criteriaのクエリ情報から、ソート条件式を生成する。
         
        戻り値:
        ソート条件式
      • generateInsertQuery

        protected java.lang.String generateInsertQuery()

        INSERT文生成

         クエリ種別がINSERTの場合に、Criteriaのクエリ情報から発行するINSERT文を生成する。
         
        戻り値:
        INSERT文
      • getInsertTable

        protected java.lang.String getInsertTable()

        登録テーブル取得

         Criteriaのクエリ情報から、登録テーブルを取得する。
         
        戻り値:
        検索テーブル名
      • createInsertColumns

        protected java.lang.String createInsertColumns()

        登録カラム生成

         Criteriaのクエリ情報から、登録カラムを生成する。
         
        戻り値:
        登録カラム
      • createInsertValues

        protected java.lang.String createInsertValues()

        登録値生成

         Criteriaのクエリ情報から、登録値を生成する。
         
        戻り値:
        登録値
      • generateUpdateQuery

        protected java.lang.String generateUpdateQuery()

        UPDATE文生成

         クエリ種別がUPDATEの場合に、Criteriaのクエリ情報から発行するUPDATE文を生成する。
         
        戻り値:
        UPDATE文
      • getUpdateTable

        protected java.lang.String getUpdateTable()

        更新テーブル取得

         Criteriaのクエリ情報から、更新テーブルを取得する。
         
        戻り値:
        検索テーブル名
      • createUpdateExpression

        protected java.lang.String createUpdateExpression()

        更新式生成

         Criteriaのクエリ情報から、更新式を生成する。
         
        戻り値:
        更新式
      • generateDeleteQuery

        protected java.lang.String generateDeleteQuery()

        DELETE文生成

         クエリ種別がDELETEの場合に、Criteriaのクエリ情報から発行するDELETE文を生成する。
         
        戻り値:
        UPDATE文
      • getDeleteTable

        protected java.lang.String getDeleteTable()

        削除テーブル取得

         Criteriaのクエリ情報から、削除テーブルを取得する。
         
        戻り値:
        検索テーブル名