返された列の値に依存するコードの所在を見つける

pureQuery 分析ビューを使用することにより、pureQuery アプリケーションの、SQL 照会によって返された列の値に依存する Java ステートメントをすべて参照することができます。

このタスクについて

Java アプリケーションで、フィールドを変更しようとしていて、その変更によって影響を受けるステートメントを把握する必要があるとき、この情報が役立つ場合があります。

また、この分析は、データベース内の列の名前を変更することを提案された場合にも役立つ場合があります。 分析の結果を使用して、アプリケーションで行う必要がある変更を予測したり、変更によって無効にされるすべての SQL ステートメントを見つけたりすることができます。

また、アプリケーションが専用データベース列を照会する場合で、これらの列の戻り値がアプリケーションが生成するレポートに現われないようにする場合にも、この分析を使用することができます。

これらの Java ステートメントを見つけるために、pureQuery ではソース・コード分析を使用します。これはコードを実行することなくコードを分析するプロセスです。

列の値を返す SELECT ステートメントには、JOIN 節および WITH 節を含めることができます。

手順

pureQuery アプリケーションの中で SQL 照会が返す値に依存するステートメントのすべてを参照するには、以下のようにします。

  1. コードの依存関係を分析する列値を pureQuery に指定します。
    • アノテーション付きのメソッドを使用している場合:
      • SELECT ステートメントが返す結果セットの 1 列の値を分析するには、メソッドの宣言で SELECT ステートメントの列名または列の別名を右クリックします。 続いて、「データ・アクセス開発」>「ソース・コード分析」>「列値従属関係の分析」を選択します。
        以下の例では列 CATLOG の値が分析されます。
        // Select all CATALOGs
        @Select(sql="select NAME, CATLOG from ¥"CATALOG¥"")
        Iterator<Catalog> getCatalogs();
      • SELECT ステートメントが返す結果セットのすべての列 (式によって定義される列は除く) の値を分析するには、メソッドの宣言で SELECT ステートメントの列名以外の任意の場所を右クリックします。 続いて、「データ・アクセス開発」>「ソース・コード分析」>「列値従属関係の分析」を選択します。
        以下の例は SELECT という単語の上にカーソルを置く例です。
        // Select all CATALOGs
        @Select(sql="select NAME, CATLOG from ¥"CATALOG¥"")
        Iterator<Catalog> getCatalogs();
      • SELECT ステートメントが返す結果セットのすべての列の値を分析するもう 1 つの手段として、 SELECT ステートメント内で宣言されたアノテーション付きのメソッドへの呼び出しを右クリックする方法があります。 続いて、「データ・アクセス開発」>「ソース・コード分析」>「列値従属関係の分析」を選択します。
        以下の例では getCatalogs() メソッドのカーソルを配置します。
        Iterator<Catalog> getCatalogs = data.getCatalogs();
      • メソッド getCatalogs() の宣言は先の 2 つの例の宣言と類似しているように見える場合があります。
    • インライン・メソッドを使用している場合:
      • SELECT ステートメントが返す結果セットの 1 列の値を分析するには、メソッドの呼び出しで SELECT ステートメントの列名または列の別名を右クリックします。 続いて、「データ・アクセス開発」>「ソース・コード分析」>「列値従属関係の分析」を選択します。
        以下の例では列 NAME の値が分析されます。
        Iterator<Catalog> getCatalogs = db.queryIterator ("select NAME as CATALOG_NAME,  CATLOG from ¥"CATALOG¥"", Catalog.class);
      • SELECT ステートメントが返す結果セットの 1 列の値を分析するもう 1 つの手段として、変数を初期化するために使用された SELECT ステートメントの列名または列の別名を右クリックする方法があります。 続いて、「データ・アクセス開発」>「ソース・コード分析」>「列値従属関係の分析」を選択します。
        以下の例では列 NAME の値が分析されます。
        @Sql String sqlStmt = "select NAME, CATLOG from ¥"CATALOG¥"";
        Iterator<Catalog> getCatalogs = db.queryIterator ("select NAME as CATALOG_NAME,  CATLOG from ¥"CATALOG¥"", Catalog.class);
      • SELECT ステートメントが返す結果セットのすべての列 (式によって定義される列は除く) の値を分析するには、メソッドの呼び出しで SELECT ステートメントの列名以外の任意の場所を右クリックします。 続いて、「データ・アクセス開発」>「ソース・コード分析」>「列値従属関係の分析」を選択します。
        以下の例は SELECT という単語の上にカーソルを置く例です。
        Iterator<Catalog> getCatalogs = db.queryIterator ("select NAME, CATLOG from ¥"CATALOG¥"", Catalog.class);
      • SELECT ステートメントが返す結果セットのすべての列の値を分析するもう 1 つの手段として、 変数を初期化するために使用された SELECT ステートメントの列名以外を右クリックする方法があります。 続いて、「データ・アクセス開発」>「ソース・コード分析」>「列値従属関係の分析」を選択します。
        以下の例は SELECT という単語の上にカーソルを置く例です。
        @Sql String sqlStmt = "select NAME, CATLOG from ¥"CATALOG¥"";
        Iterator<Catalog> getCatalogs = db.queryIterator (sqlStmt, Catalog.class);
  2. 分析された値を私用する Java ステートメントを参照するには、pureQuery 分析 ビューを確認してください。 このビューでは、ビュー内の項目が、次の階層で表示されます。
    • Java プロジェクト
      • Java パッケージ
        • ソース・コード分析の開始元であるステートメントを含む Java ファイル
          • ソース・コード分析の開始元であるステートメント
            • 選択した値に依存する Java ステートメント

次のタスク

列にドメイン・モデルで private のマークが付けられたデータ・タイプが存在する場合には、 ビューで、以下の標識とともに表示されます。 プライバシー標識 データ・タイプに private のマークを付ける方法については、『ドメイン・データ・タイプへのデータ・プライバシー情報の追加』を参照してください。

コードの行を右クリックし、「ソースで表示」を選択して Java エディターでソース・ファイルを開きます。 エディターでは、クリックした行が強調表示されています。

時間がかかりすぎている分析を停止するには、キャンセル・ボタンをクリックします。

結果をフィルターに掛けるには、ビューの上部にある下矢印をクリックし、フィルター・ボタンをクリックして「フィルター」ウィンドウを開きます。

結果をクリアするには、クリア・ボタンをクリックします。


フィードバック