データベース ダイアグラムの表示とクエリの実行

Workshop では、[DbXplorer] でデータベースを操作できるだけでなく、[DbXaminer] を使用してデータベース ダイアグラムを表示したりクエリを実行したりできます。

データベース ダイアグラムの表示

[DbXaminer] を使用すると、特定のスキーマ、テーブル、またはカラムのデータベース ダイアグラムを表示し、テーブル、主キー、および外部キーの間の関係を描画できます。

注意 : まだ [DbXplorer] を開いていない場合は、[ウィンドウ] メニューから [ビューの表示DbXplorer] を選択します。

  1. [DbXplorer] ビューでスキーマ、テーブル、またはカラムを右クリックし、[DbXaminer で表示] を選択します。
  2. [DbXaminer で表示] をクリックして [DbXaminer] を表示する

  3. 選択したスキーマのデータベース ダイアグラムが表示されます。データベース アーティファクトを選択するとそのプロパティが表示されます。別の接続、データベース、スキーマに切り替えるには、[接続]、[データベース]、または [スキーマ] プルダウン メニューを使用します。
  4. カラム名をクリックしてそのプロパティを表示する

  5. テーブルまたはカラムのデータを表示するには、データベース ダイアグラムのリソースを選択し、[データの表示] ボタンをクリックします。適切な SQL クエリが生成され、[DbXaminer] の [SQL エディタ] タブに結果が表示されます。
  6. [データの表示] ボタンをクリックして、選択したテーブルのデータを表示する

  7. クエリ結果をソートするには、カラム名をクリックします。
  8. [SQL エディタ] ウィンドウにデータベース データを表示する

  9. テーブル内のデータを編集するには、行をダブルクリックします。

クエリの実行

[DbXaminer] には、データベース ダイアグラムの表示機能に加え、[SQL エディタ]、[EJBQL エディタ] (EJB クエリ言語の式構築用)、[HQL エディタ] (Hibernate クエリ言語の式構築用) という 3 つのクエリ エディタが用意されています。各エディタは、構文の色分け機能と、各言語のコード補完機能を備えています。

[SQL エディタ] の使用

[EJBQL エディタ] および [HQL エディタ] の使用

[SQL エディタ] の使用

SQL クエリ エディタを使用すると、クエリ文の定義や実行、クエリ結果の表示やソート、および新しいデータの追加が簡単に行えます。

  1. クエリ文を定義する際は、〔Ctrl〕+〔Space〕を同時に押すことで、キーワードやデータベース アーティファクトのコード補完機能を実行できます。次の例では、コード補完機能によって sales データベース内の選択可能なテーブルが表示されています。
  2. 〔Ctrl〕とスペース キーを同時に押して SQL 文のコード補完機能を実行する

  3. クエリ文の定義が完了したら、[実行] ボタンをクリックするか〔Ctrl〕+〔Enter〕を押して SQL コマンドを実行します。
  4. [Execute] ボタンをクリックしてクエリを実行する

  5. 既存のテーブルに新しい行を追加するには、[新しいテーブルの行] ボタンをクリックします。
  6. [新しいテーブルの行] ボタンをクリックしてテーブルにデータを追加する

  7. [行の挿入] ダイアログのドロップダウン メニューから [テーブル] を選択し、適切なカラム情報を入力します。各カラムに情報を入力すると、その値がカラムの定義 (型、サイズなど) に準拠しているかどうかが自動的に検証されます。[OK] をクリックしてテーブルに行を挿入します。
  8. [行の挿入] ダイアログに新しいカラム値を入力する

[EJBQL エディタ] および [HQL エディタ] の使用

[EJBQL エディタ] と [HQL エディタ] の機能は基本的に [SQL エディタ] と同等ですが、クエリの実行対象はデータベースではなくエンティティです。つまり、式の中ではテーブル名やカラム名ではなく、エンティティ名やプロパティ名を指定することになります。また、この節の最後に示すように、構築した EJBQL 式や HQL 式に対応する SQL 式を得る機能もエディタに備わっています。

注意 : Pointbase データベースから生成されたエンティティに対してクエリを実行できるようにするには、最初に、(<Project>/src/META-INF/ にある) persistence.xml を編集して、GenericDialect に値 org.hibernate.dialect.PointbaseDialect を設定する必要があります。

  1. [EJBQL エディタ] と [HQL エディタ] は、[DbXaminer] の下部にある切り替えタブから使用できます。

  2. クエリを実行する対象としては、接続とデータベースではなく、エンティティを含んでいるプロジェクトを指定します。エディタの上部にあるボタンをクリックすると [Web アプリケーション] ダイアログが表示され、そこで Web アプリケーション プロジェクトを選択できます。

  3. プロジェクトを選択した後は、SQL 式の場合と同じように、EJBQL および HQL クエリ式の作成とテストを開始できます。

    EJBQL 式を完成する

    HQL 式を完成する

  4. [クエリの実行] ボタンをクリックすると、SQL クエリの場合と同じように、(正常に実行された場合は) IDE にクエリの結果が表示されます。
  5. EJBQL クエリの結果

    HQL クエリの結果

  6. 単一行を選択して、[プロパティ] ビューで設定されている情報を確認します。クエリ結果内にデータ カラムが表示される場合のみ、[プロパティ] ビューに情報が表示されます。結果を選択したときに [プロパティ] ビューに表示される値は、オブジェクトの特定のインスタンスのフィールド値です。

    リストされる項目は展開することができます。選択した項目を展開すると、JPA アノテーションで定義されているエンティティの関係を詳細表示することができます。上記の例を展開するには、項目を選択します。[プロパティ] ビューに、エンティティ Bean にマップされているフィールドが表示されます。展開すると、該当のインスタンスの特定のデータを詳細表示できます。

    プロパティを展開すると、エンティティ Bean とそのデータの関係を詳細表示できます。これは、アノテーションで定義されているデータの多対一関係を示しています。以上のクエリはすべて、SQL でデータベースを直接呼び出すのではなく JPA ランタイム エンジンを介して実行されます (注意 : Kodo ライセンスが無効であるにもかかわらず Kodo プロジェクトにリンクした場合、これらのクエリのいずれかを実行しようとするとエラーが発生します)。

  7. [Generated SQL] タブをクリックすると、作成したクエリに対応する SQL 式が表示されます。
  8. EJBQL クエリから生成された SQL

    HQL クエリから生成された SQL

EJBQL および HQL (2 つとも非常によく似ています) の詳細については、Hibernate Web サイトの「Chapter 7: EJB-QL: The Object Query Language」を参照してください。

関連する概念

Hibernate オブジェクト リレーショナル マッピングの生成

EJB3 永続性マッピングの生成


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。