2012-04-24 44 views
1

我在寻找一个简单的方法来测试Hibernate的HQL标准查询。我试过使用IntelliJ的Hibernate控制台支持,但我的run into problems测试Hibernate查询

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

回答

0

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

0

你可以尝试JUnit计算策略。

0

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

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

我们也使用它来测试其他类型的Hibernate设置或行为,并且在我们的目的上有一个完整的Hibernate测试套件的副作用,这样我们可以升级并确信我们需要的东西在意外的方式。

0

我怀疑是否有可能将这样一个工具作为一个单独的应用程序,您需要指定一个hibernate配置(可能在Spring上下文中),并且它应该能够找到这些类和它们的HBM文件。此外,您可能会使用不同的用户类型或类似于其他JAR的类型,所以我甚至不会搜索它。

对我来说,最好的工具是一个单元测试框架+ IDE中的调试工具 - 你可以只停留在某一点,你必须创建一个会话,做任何你在这种模式下需要。例如在IntelliJ中,除了通常的表达式之外,您可以在调试过程中放置​​代码片段,这可能会帮助您使用Criteria API。

0

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