使用Java语言在从Hibernate执行UPDATE时可以获取本机SQL查询吗?休眠:更新 - 如何获得本机SQL查询
例如,我有
session.update(something);
发言,我想检索包含UPDATE操作背后的SQL查询String
(或别的东西)。
我想要有效的查询,Hibernate“发送”到MySQL。
使用Java语言在从Hibernate执行UPDATE时可以获取本机SQL查询吗?休眠:更新 - 如何获得本机SQL查询
例如,我有
session.update(something);
发言,我想检索包含UPDATE操作背后的SQL查询String
(或别的东西)。
我想要有效的查询,Hibernate“发送”到MySQL。
您可以。 Hibernate使用log4j,所以你必须设置适当的类别。这些都是:
org.hibernate.SQL
到debug
org.hibernate.type
到trace
参见这里:How to print a query string with parameter values when using Hibernate
以编程方式获取查询是不可能的(或者至少在不编码特定数据库的情况下不可能):SQL查询依赖于您使用hibernate进行交互的数据库,并且通常不能通过hibernate直接访问它取决于数据库驱动程序。
查看实际SQL语句的最佳方法是查看数据库的日志文件。
你有两个选择......
你可以设置你的persistance.cfg.xml <property name="show_sql">true</property>
,但这不会在参数显示的数值,公正?
您可以(我的首选选项)使用SQL事件探查器(如果您使用的是MS SQL)来确切地查看针对数据库运行的SQL是什么。
u能解释clearly.Which字符串? – PSR 2013-05-14 10:19:52
我相信这页推荐你需要的东西: http://stackoverflow.com/questions/2536829/hibernate-show-real-sql – 2013-05-14 10:22:13