使用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