42

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

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

4

7 回答 7

17

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

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

抱歉这个 RTFM 问题。

于 2009-06-26T15:10:46.520 回答
13

您可以在 Eclipse 中使用休眠工具来运行查询。这将允许您在想尝试某些东西时运行 HQL。

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

sun有一个独立的编辑器,但我没有尝试过。

于 2009-06-25T12:10:32.240 回答
7

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

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

这是屏幕截图...

在此处输入图像描述

于 2012-01-07T22:15:13.893 回答
3

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

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

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();

最佳安德斯

于 2009-06-25T12:12:50.317 回答
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.
}
于 2009-06-25T12:28:04.780 回答
2

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

于 2011-10-11T10:39:47.267 回答
2

在日食

  1. 安装 Hibernate 工具(Jboss)
  2. 切换到休眠视角
  3. 打开/单击休眠配置窗口
  4. Rt 点击窗口并添加配置
  5. Rt 单击窗口单击/打开 HQL 编辑器
  6. 键入并执行您的 HQL 查询并在 Hibernate 查询结果窗口中获取您的结果

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

于 2016-08-13T12:48:13.943 回答