如何测试HQL查询?

时间:2009-06-25 12:05:44

标签: java hibernate testing hql environment

我正在寻找一种快速(非常快)的方法来测试对hibernate查询的更改。我有一个庞大的应用程序,有数千个不同的HQL查询(在XML文件中)和100多个映射类,我不想重新部署整个应用程序只是测试一个微小的更改查询。

良好的设置如何让我免于重新部署并启用快速查询检查?

7 个答案:

答案 0 :(得分:16)

使用Intellij IDEA 8.1.3,选择的机制称为“Facet”。要立即测试HQL查询:

  1. 创建数据源工具 - >数据源,添加数据源,定义开发数据库的驱动程序,用户名和密码
  2. 如果您还没有hibernate.cfg或者以不同于xml的方式配置会话工厂:创建引用所有XML映射的hibernate.cfg文件(定义会话工厂的名称,以便于处理)
  3. 在“项目结构”中将Facet添加到您选择的模块中,并将最近定义的数据源分配给新的facet
  4. 切换到Java EE View
  5. 打开Hibernate Facets - Node
  6. 右键单击会话工厂并选择“打开HQL控制台”
  7. 在控制台中输入HQL查询 ......而且你已经完成了。
  8. 抱歉这个RTFM问题。

答案 1 :(得分:11)

您可以使用hibernate tools in eclipse来运行查询。这样您就可以在想要尝试的时候运行HQL。

如果您使用的是IntelliJ,则有Hibero

太阳有一个standalone editor,但我还没试过。

答案 2 :(得分:6)

我写了一个简单的工具来测试&预览HQL,这只是一个带有main方法的java类。

您可以在此处找到代码:https://github.com/maheskrishnan/HQLRunner

这是屏幕截图......

enter image description here

答案 3 :(得分:3)

我使用HSQLDB数据库在单元测试中测试我的HQL查询。只需创建一个实体管理器,将其转换为休眠会话并进行查询。

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

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();
最佳

安德斯

答案 4 :(得分: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.
}

答案 5 :(得分:2)

在eclipse Market中,您可以搜索JBoss Tools并从给定列表中仅选择Hibernate工具。

答案 6 :(得分:1)

在日食中

  1. 安装Hibernate工具(Jboss)
  2. 切换到hibernate perpective
  3. 打开/单击“休眠配置”窗口
  4. Rt单击窗口并添加配置
  5. Rt点击窗口点击/打开HQL编辑器
  6. 输入并执行HQL查询,并在Hibernate Query结果窗口中获取结果
  7. 点击此链接获取更多信息http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html