如何测试HQL查询?(How to test HQL queries?)

2019-06-24 03:40发布

我在寻找一个快速(非常快)的方式来测试修改Hibernate查询。 我有成千上万的不同HQL查询(XML文件中)和100 +映射类庞大的应用程序,我不想重新部署整个应用程序只是测试一个微小的变化给查询。

如何将一个很好的设置模样,从调动释放我,实现快速查询检查?

Answer 1:

随着IntelliJ IDEA的8.1.3选择的mechnism被称为“小面”。 要立即测试HQL查询:

  1. 创建数据源工具 - >数据源,添加数据源,定义侑发展分贝的驱动程序,用户名和密码
  2. 如果你不已经一个hibernate.cfg或配置比通过XML方式不同的会话工厂:创建一个hibernate.cfg文件中引用的所有XML映射的(用于会话工厂定义名称,只是为了方便操作)
  3. 在“项目结构”小面添加到您选择的模块和最近定义数据源分配给新的方面
  4. 切换到Java EE的视图
  5. 打开休眠刻面 - 节点
  6. 右键单击会话工厂,并选择“打开HQL控制台”
  7. 在控制台上输入HQL查询......和your're完成。

对不起,这个问题RTFM。



Answer 2:

您可以使用Hibernate的工具在Eclipse中运行查询。 这将允许你,每当你想尝试一些运行HQL。

如果您使用的IntelliJ,有Hibero 。

有一个独立的编辑器来自太阳,但我还没有尝试过。



Answer 3:

我写了一个简单的工具来测试和预览HQL,这仅仅是一个java类与主要方法。

你可以在这里找到代码: https://github.com/maheskrishnan/HQLRunner

这里的屏幕截图...



Answer 4:

我测试与HSQLDB数据库单元测试我的HQL查询。 只需创建一个实体管理器,将它转换为一个Hibernate会话,并查询了。

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

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();

最好的安德斯



Answer 5:

你说的最快捷的方式,我不知道,如果你的意思是最快的方式得到什么,或者进行持续的测试,最快的方法,具有一定的初始投资得到实现的测试。 这个答案是更多的是后者。

我以前做过这个问题的方法是实现一些简单的集成测试的JUnit和DBUnit的 。

在本质上,你会使用DBUnit的设置你的测试数据库与已知的和有代表性的一组数据,然后普通的JUnit行使包含您的HQL查询的方法,并验证结果。

例如,

首先设置你的数据库只包含一个固定的一组数据例如,

Product Name, Price
Acme 100 Series Dynamite, $100
Acme 200 Series Dynamite, $120
Acme Rocket, $500

这是东西,你会在你的JUnit测试用例的设置()方法做。

现在让我们假设你有这个实体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.
}


Answer 6:

在Eclipse市场,你可以搜索JBoss的工具并仅选择从给定列表中的Hibernate工具。



Answer 7:

在日食

  1. 安装的Hibernate工具(Jboss的)
  2. 切换到休眠角度探讨
  3. 打开/点击Hibernate配置窗口
  4. RT单击该窗口上添加配置
  5. RT单击窗口中点击/打开HQL编辑器
  6. 键入并执行你的HQL查询,并在Hibernate查询结果窗口让您的结果

请点击此链接获取更多信息http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html



文章来源: How to test HQL queries?