ハイバネートクエリへの変更をテストするための高速(非常に高速)な方法を探しています。私は何千もの異なる HQL クエリ (XML ファイル内) と 100 以上のマップされたクラスを持つ巨大なアプリケーションを持っていますが、アプリケーション全体を再デプロイして、クエリへの小さな変更を 1 つだけテストしたくありません。
再配置から解放され、高速なクエリ チェックを有効にするには、どのようにセットアップすればよいでしょうか?
ハイバネートクエリへの変更をテストするための高速(非常に高速)な方法を探しています。私は何千もの異なる HQL クエリ (XML ファイル内) と 100 以上のマップされたクラスを持つ巨大なアプリケーションを持っていますが、アプリケーション全体を再デプロイして、クエリへの小さな変更を 1 つだけテストしたくありません。
再配置から解放され、高速なクエリ チェックを有効にするには、どのようにセットアップすればよいでしょうか?
Intellij IDEA 8.1.3 では、選択されたメカニズムは「ファセット」と呼ばれます。HQL クエリを即座にテストするには:
この RTFM の質問を申し訳ありません。
Eclipse で休止状態ツールを使用してクエリを実行できます。これにより、何かを試したいときはいつでも HQL を実行できます。
IntelliJ を使用している場合は、Hiberoがあります。
Sun のスタンドアロン エディタがありますが、試したことはありません。
HQLをテストおよびプレビューするための簡単なツールを作成しました。これはmainメソッドを持つ1つのJavaクラスです。
ここでコードを見つけることができます: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.
}
HSQLDB データベースを使用して単体テストで HQL クエリをテストします。エンティティ マネージャーを作成し、休止状態のセッションにキャストしてクエリを実行するだけです。
final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tacs-test", props);
final EntityManager entityManager = entityManagerFactory.createEntityManager();
return (Session)entityManager.getDelegate();
ベストアンダース
Eclipseマーケットでは、JBoss Toolsを検索し、指定されたリストからHibernateツールのみを選択できます。
日食で
詳細については、このリンクに従ってくださいhttp://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html