web-dev-qa-db-ja.com

HQLクエリをテストする方法は?

休止状態クエリへの変更をテストするための高速(本当に高速な)方法を探しています。数千の異なるHQLクエリ(XMLファイル)と100以上のマップされたクラスを持つ巨大なアプリケーションがあり、クエリに対するわずかな変更をテストするためだけにアプリケーション全体を再デプロイしたくありません。

再展開から解放され、高速なクエリチェックを有効にするには、どのようにすれば良いセットアップに見えるでしょうか。

39
Chris

Intellij IDEA 8.1.3では、選択のメカニズムは「ファセット」と呼ばれます。HQLクエリを即座にテストするには:

  1. データソースを作成する[ツール]-> [データソース]、[データソースを追加]、ドライバー、ユーザー名、およびyor開発データベースのパスワードを定義します
  2. すでにhibernate.cfgがない場合、またはxml経由とは異なる方法でセッションファクトリを構成する場合:すべてのXMLマッピングを参照するhibernate.cfgファイルを作成します(処理を簡単にするために、セッションファクトリの名前を定義します)
  3. 「プロジェクト構造」で、選択したモジュールにファセットを追加し、最近定義したデータソースを新しいファセットに割り当てます
  4. Java EEビューに切り替えます
  5. Hibernate Facetsを開く-ノード
  6. [セッションファクトリ]を右クリックし、[HQLコンソールを開く]を選択します
  7. コンソールにHQLクエリを入力します...これで完了です。

RTFM質問。

16
Chris

Eclipseの休止状態ツール を使用してクエリを実行できます。これにより、何かを試したいときにHQLを実行できます。

IntelliJを使用している場合、 Hibero があります。

Sunから スタンドアロンエディター がありますが、試していません。

11
stevedbrown

HQLをテストおよびプレビューするための簡単なツールを作成しました。これはただ1つのJava mainメソッドを持つクラスです。

あなたはここでコードを見つけることができます: https://github.com/maheskrishnan/HQLRunner

これがスクリーンショットです...

enter image description here

6
Mahes

あなたは最速の方法を言った、私はあなたがテストを実装するためにいくつかの初期投資を行って、あなたが最も早く行く方法を意味したのか、それとも進行中のテストを実行する最も速い方法を意味したのかわからない。この答えは後者です。

以前にこれを行った方法は、 JUnit および DBUnit を使用した簡単な統合テストを実装することでした。

基本的に、DBUnitを使用して既知の代表的なデータセットでテストデータベースを設定し、プレーンJUnitでHQLクエリを含むメソッドを実行し、結果を検証します。

例えば、

最初にデータベースを設定して、固定データセットのみを含むようにします。たとえば、

Product Name, Price
Acme 100 Series Dynamite, $100
Acme 200 Series Dynamite, $120
Acme Rocket, $500

これは、JUnitテストケースのsetup()メソッドで行うことです。

ここで、このエンティティにDAOがあり、「findProductWithPriceGreaterThan(int)」メソッドがあると仮定します。テストでは、次のようなことをします。

public void testFindProductWithPriceGreaterThanInt() {
    ProductDAO dao = new HibernateProductDAO();
    //... initialize Hibernate, or perhaps do this in setup()

    List products = dao.findProductWithPriceGreaterThan(110);
    assertEquals(2, products.size());
    //... additional assertions to verify the content of the list.
}
3
Jack Leow

Eclipseマーケットでは、JBoss Toolsを検索し、指定されたリストからHibernateツールのみを選択できます。

2

Eclipseで

  1. Hibernateツールのインストール(Jboss)
  2. 休止状態のパーペクティブに切り替える
  3. Hibernate Configurationウィンドウを開く/クリックする
  4. Rtウィンドウをクリックして、構成を追加
  5. Rtウィンドウをクリック/ HQLエディターを開く
  6. HQLクエリを入力して実行し、Hibernate Query結果ウィンドウで結果を取得します

詳細については、このリンクに従ってください http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html

1
James