我是否将HQL查询转换为纯Oracle Query?将HQL(休眠查询语言)转换为oracle查询
有没有翻译这个。
例:
从表1 - >表1是表
隐蔽实体类作为
SELECT * FROM表
感谢advane。
我是否将HQL查询转换为纯Oracle Query?将HQL(休眠查询语言)转换为oracle查询
有没有翻译这个。
例:
从表1 - >表1是表
隐蔽实体类作为
SELECT * FROM表
感谢advane。
您可以简单地打开Hibernate中的SQL日志记录并查看它生成的查询。具体来说,设置该属性:
hibernate.show_sql=true
编辑:如果根据您启动服务器的方式stdout是不提供给你,然后你要改变Hibernate日志配置打印SQL调试日志。将此行添加到您的log4j属性文件中。
log4j.logger.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查询)。
您还可以将'org.hibernate.SQL'的日志记录级别设置为DEBUG。 – 2012-08-03 12:07:04
谢谢,如果我在hibernate.cfg中添加这个之后,我运行单元测试仍然不打印日志。 – NPKR 2012-08-03 12:20:10
你如何启动你的服务器?如果stdout不适用于您,您将看不到日志。在这种情况下,@ Piotr设置hibernate日志级别为sqls进行调试的想法会有所帮助。 – 2012-08-03 12:25:29