【发布时间】:2012-08-03 12:00:02
【问题描述】:
我想将 HQL 查询转换为纯 Oracle 查询?
有没有翻译这个的。
例如:
来自 Table1 --> Table1 是 Table 的 Entity 类
把它改成
从表中选择 *
非常感谢。
【问题讨论】:
我想将 HQL 查询转换为纯 Oracle 查询?
有没有翻译这个的。
例如:
来自 Table1 --> Table1 是 Table 的 Entity 类
把它改成
从表中选择 *
非常感谢。
【问题讨论】:
您可以简单地在 Hibernate 中打开 SQL 日志记录并查看它生成的查询。具体来说,设置这个属性:
hibernate.show_sql=true
编辑:如果根据您启动服务器的方式,您无法使用 stdout,那么您需要更改休眠日志配置以打印 SQL 调试日志。将此行添加到您的 log4j 属性文件中。
log4j.logger.org.hibernate.SQL=DEBUG
【讨论】:
org.hibernate.SQL 的日志记录级别设置为DEBUG。
您还可以使用各种记录器。
<!-- 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" />
【讨论】:
正如其他人评论的那样,hibernate 的hibernate.show_sql 属性可以记录 Hibernate 执行的 SQL 查询。
对于交互式查询,Eclipse 和 IntelliJ IDEA 都有 Hibernate 控制台插件,可让您输入 HQL 查询并执行它们。
请注意,这是一种有用的技术,可用于了解您是否需要执行 HQL 查询优化(即,您想查看您的 HQL 查询是否正在使用适当的索引运行)。
【讨论】: