【问题标题】:test Hibernate queries测试休眠查询
【发布时间】:2012-04-24 12:06:18
【问题描述】:

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

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

【问题讨论】:

    标签: java hibernate intellij-idea


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            您可以尝试JUnit 方法。

            【讨论】:

              猜你喜欢
              • 2011-08-09
              • 2021-11-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多