休止状態クエリへの変更をテストするための高速(本当に高速な)方法を探しています。数千の異なるHQLクエリ(XMLファイル)と100以上のマップされたクラスを持つ巨大なアプリケーションがあり、クエリに対するわずかな変更をテストするためだけにアプリケーション全体を再デプロイしたくありません。
再展開から解放され、高速なクエリチェックを有効にするには、どのようにすれば良いセットアップに見えるでしょうか。
Intellij IDEA 8.1.3では、選択のメカニズムは「ファセット」と呼ばれます。HQLクエリを即座にテストするには:
RTFM質問。
Eclipseの休止状態ツール を使用してクエリを実行できます。これにより、何かを試したいときにHQLを実行できます。
IntelliJを使用している場合、 Hibero があります。
Sunから スタンドアロンエディター がありますが、試していません。
HQLをテストおよびプレビューするための簡単なツールを作成しました。これはただ1つのJava mainメソッドを持つクラスです。
あなたはここでコードを見つけることができます: https://github.com/maheskrishnan/HQLRunner
これがスクリーンショットです...
あなたは最速の方法を言った、私はあなたがテストを実装するためにいくつかの初期投資を行って、あなたが最も早く行く方法を意味したのか、それとも進行中のテストを実行する最も速い方法を意味したのかわからない。この答えは後者です。
以前にこれを行った方法は、 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.
}
Eclipseマーケットでは、JBoss Toolsを検索し、指定されたリストからHibernateツールのみを選択できます。
Eclipseで
詳細については、このリンクに従ってください http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html