HQLクエリをテストする方法は?
-
20-08-2019 - |
質問
休止状態クエリへの変更をテストするための高速(本当に高速)な方法を探しています。数千の異なるHQLクエリ(XMLファイル)と100以上のマッピングされたクラスを持つ巨大なアプリケーションがあり、クエリ全体の小さな変更をテストするためだけにアプリケーション全体を再デプロイしたくありません。
再配置から解放され、高速なクエリチェックを有効にするには、どのようにすればよいセットアップになりますか?
解決
Intellij IDEA 8.1.3では、選択のメカニズムは「ファセット」と呼ばれます。 HQLクエリを即座にテストするには:
- データソースツールの作成-<!> gt;データソース、データソースの追加、開発データベースのドライバー、ユーザー名、パスワードの定義
- すでにhibernate.cfgがない場合、またはxml経由とは異なる方法でセッションファクトリを設定する場合:すべてのXMLマッピングを参照するhibernate.cfgファイルを作成します(処理を簡単にするために、セッションファクトリの名前を定義します) )
- 「プロジェクト構造」で選択したモジュールにファセットを追加し、最近定義したデータソースを新しいファセットに割り当てます
- Java EEビューへの切り替え
- Hibernate Facets-Nodeを開く
- セッションファクトリを右クリックし、<!> quot; Open HQL Console <!> quot; を選択します
- コンソールでHQLクエリを入力 ...これで完了です。
このRTFMの質問はごめんなさい。
他のヒント
Eclipseの休止状態ツールを使用してクエリを実行できます。これにより、何かを試したいときにHQLを実行できます。
IntelliJを使用している場合、 Hibero があります。
太陽からのスタンドアロンエディターがありますが、試していません。
><!> ampをテストする簡単なツールを書きました。 HQLをプレビューします。これは、mainメソッドを持つ1つのJavaクラスです。
ここでコードを見つけることができます: https://github.com/maheskrishnan/HQLRunner
これがスクリーンショットです...
HSQLDBデータベースを使用した単体テストでHQLクエリをテストします。エンティティマネージャーを作成し、休止状態のセッションにキャストして、クエリを実行します。
final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tacs-test", props);
final EntityManager entityManager = entityManagerFactory.createEntityManager();
return (Session)entityManager.getDelegate();
ベスト アンダース
あなたは最も簡単な方法を言った、あなたがテストを実装するための初期投資をして、あなたが最も早く進むための方法なのか、それとも進行中のテストを行うための最も速い方法なのかわからない。この答えは後者です。
以前にこれを行った方法は、 JUnit および DBUnit 。
本質的には、DBUnitを使用して既知の代表的なデータセットでテストデータベースをセットアップし、プレーンJUnitでHQLクエリを含むメソッドを実行し、結果を検証します。
たとえば、
最初にデータベースを設定して、固定データセットのみを含めるようにします。例:
Product Name, Price
Acme 100 Series Dynamite, $100
Acme 200 Series Dynamite, $120
Acme Rocket, $500
これは、JUnitテストケースのsetup()メソッドで行うことです。
ここで、このエンティティにDAOがあり、<!> quot; findProductWithPriceGreaterThan(int)<!> quot;があると仮定します。方法。テストでは、次のようなことをします:
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 Marketでは、JBoss Toolsを検索し、指定されたリストからHibernateツールのみを選択できます。
日食中
- Hibernateツールのインストール(Jboss)
- 休止状態のパーペクティブに切り替える
- Hibernate Configurationウィンドウを開く/クリックする
- Rtウィンドウをクリックして、構成を追加
- ウィンドウをクリックしてHQLエディターをクリック/開く
- HQLクエリを入力して実行し、Hibernate Queryの結果ウィンドウで結果を取得します
詳細については、このリンクに従ってください http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html