【问题标题】:converting HQL (hibernate query language) to oracle query将 HQL(休眠查询语言)转换为 oracle 查询
【发布时间】:2012-08-03 12:00:02
【问题描述】:

我想将 HQL 查询转换为纯 Oracle 查询?

有没有翻译这个的。

例如:

来自 Table1 --> Table1 是 Table 的 Entity 类

把它改成

从表中选择 *

非常感谢。

【问题讨论】:

    标签: java hibernate hql


    【解决方案1】:

    您可以简单地在 Hibernate 中打开 SQL 日志记录并查看它生成的查询。具体来说,设置这个属性:

    hibernate.show_sql=true
    

    编辑:如果根据您启动服务器的方式,您无法使用 stdout,那么您需要更改休眠日志配置以打印 SQL 调试日志。将此行添加到您的 log4j 属性文件中。

    log4j.logger.org.hibernate.SQL=DEBUG
    

    【讨论】:

    • 您还可以将org.hibernate.SQL 的日志记录级别设置为DEBUG。
    • 谢谢,如果我在 hibernate.cfg 中添加这个之后我运行单元测试仍然没有打印日志。
    • 你是如何启动你的服务器的?如果您无法使用标准输出,您将看不到日志。在这种情况下,@Piotr 将休眠日志级别设置为调试 sql 的想法会有所帮助。
    【解决方案2】:

    您还可以使用各种记录器。

    <!-- Log all SQL DML statements as they are executed -->
    <logger name="org.hibernate.SQL" level="debug" />
    <!-- Log all  JDBC parameters -->
    <logger name="org.hibernate.type" level="debug" />
    <!-- Log all  second level cache activity -->
    <logger name="org.hibernate.cache" level="debug" />
    <!-- Log all  transaction related activity -->
    <logger name="org.hibernate.transaction" level="debug" />
    <!-- Log everything -->
    <logger name="org.hibernate" level="debug" />
    

    【讨论】:

      【解决方案3】:

      正如其他人评论的那样,hibernate 的hibernate.show_sql 属性可以记录 Hibernate 执行的 SQL 查询。

      对于交互式查询,EclipseIntelliJ IDEA 都有 Hibernate 控制台插件,可让您输入 HQL 查询并执行它们。

      请注意,这是一种有用的技术,可用于了解您是否需要执行 HQL 查询优化(即,您想查看您的 HQL 查询是否正在使用适当的索引运行)。

      【讨论】:

        猜你喜欢
        • 2023-03-10
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 2010-09-08
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多