测试Hibernate查询

时间:2012-04-24 12:06:18

标签: java hibernate intellij-idea

我正在寻找一种测试Hibernate HQL标准查询的简单方法。我尝试过使用IntelliJ的Hibernate Console支持,但我run into problems

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

5 个答案:

答案 0 :(得分:0)

您可以使用H2(JDBC in-memory)数据库和jetty作为容器,创建一个容器和上下文,在构建的单元测试阶段执行hibernate查询(或来自JUnit)。

答案 1 :(得分:0)

您可以尝试JUnit approch。

答案 2 :(得分:0)

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

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

我们还使用它来测试其他类型的Hibernate设置或行为,并且为了我们的目的而在Hibernate上成为一个完整的测试套件的另一个好处是,我们可以升级并确信我们需要的任何内容都不会在意外中发生变化方式。

答案 3 :(得分:0)

我怀疑有可能将这样的工具作为一个单独的应用程序,你需要指定一个hibernate配置(可能在Spring上下文中),它应该能够找到类及其HBM文件。此外,您可能会使用不同的UserTypes或其他类似的其他JAR,因此我甚至不会搜索它。

对我而言,最好的工具是IDE的单元测试框架+调试工具 - 您可以在某个时刻停止创建会话并在此模式下执行任何操作。例如,在IntelliJ中,除了通常的表达式之外,您可以在调试期间放置代码片段,这可能会帮助您使用Criteria API。

答案 4 :(得分:0)

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