42

ハイバネートクエリへの変更をテストするための高速(非常に高速)な方法を探しています。私は何千もの異なる HQL クエリ (XML ファイル内) と 100 以上のマップされたクラスを持つ巨大なアプリケーションを持っていますが、アプリケーション全体を再デプロイして、クエリへの小さな変更を 1 つだけテストしたくありません。

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

4

7 に答える 7

17

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

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

この RTFM の質問を申し訳ありません。

于 2009-06-26T15:10:46.520 に答える
13

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

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

Sun のスタンドアロン エディタがありますが、試したことはありません。

于 2009-06-25T12:10:32.240 に答える
7

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

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

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

ここに画像の説明を入力してください

于 2012-01-07T22:15:13.893 に答える
3

あなたは最速の方法を言った、あなたが実行するための最速の方法を意味するのか、それとも継続的なテストを実行するための最速の方法を意味するのか、テストを実装するための初期投資を伴うのかどうかはわかりません。この答えはもっと後者です。

私が以前にこれを行った方法は、JUnitDBUnitを使用した簡単な統合テストを実装することでした。

基本的に、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.
}
于 2009-06-25T12:28:04.780 に答える
3

HSQLDB データベースを使用して単体テストで HQL クエリをテストします。エンティティ マネージャーを作成し、休止状態のセッションにキャストしてクエリを実行するだけです。

    final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tacs-test", props);

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();

ベストアンダース

于 2009-06-25T12:12:50.317 に答える
2

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

于 2011-10-11T10:39:47.267 に答える
2

日食で

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

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

于 2016-08-13T12:48:13.943 に答える