1

我正在寻找一种简单的方法来测试 Hibernate HQL 标准查询。我试过使用 IntelliJ 的 Hibernate Console 支持,但我遇到了问题

是否有一个独立的工具可以提供一种简单的方法来测试 HQL 查询?创建会话工厂并执行作为参数传递的查询的简单控制台程序就足够了。

4

5 回答 5

0

我怀疑是否有可能将这样的工具用作单独的应用程序,您需要指定休眠配置(可能在 Spring Context 中),并且它应该能够找到类及其 HBM 文件。此外,您可能会使用其他 JAR 中的不同 UserType 或类似的东西,所以我什至不会搜索它。

对我来说,最好的工具是你的 IDE 的单元测试框架 + 调试工具——你可以在创建会话的某个点停下来,在这种模式下做任何你想做的事情。例如,在 IntelliJ 中,除了常用表达式之外,您可以在调试期间放置代码片段,这可能有助于您使用 Criteria API。

于 2012-04-24T13:46:13.380 回答
0

使用控制台将是我玩 HQL 的首选(例如Hibernate Tools for eclipse)。但如果这不起作用,我会使用 JUnit。我的团队使用该策略来测试我们在生产代码中使用的 HQL 查询,并偶尔帮助首先编写查询。

测试设置涉及设置内存数据库(我们使用HSQLDB,但还有其他)。使用 Hibernate 或原始 SQL 插入数据。然后配置一个 Hibernate SessionFactory 来连接它,并运行你的 HQL。

我们还使用它来测试其他类型的 Hibernate 设置或行为,并且具有作为 Hibernate 上的完整测试套件的附带好处,以便我们可以升级并确信我们需要的任何东西都没有以意想不到的方式发生变化。

于 2012-04-24T13:01:42.277 回答
0

您可以使用H2(内存中的 JDBC)数据库和用于容器的jetty,来创建将在构建的单元测试阶段(或从 JUnit)执行休眠查询的容器和上下文。

于 2012-04-24T12:09:42.297 回答
0

你可以试试一个JUnit方法。

于 2012-04-24T12:10:36.337 回答
0

上次我不得不做这种工作时,我使用DbUnit来测试我的数据访问层,我在其中使用 JPA 2.0 和 Hibernate

于 2012-04-24T14:08:21.770 回答