有沒有辦法使用Hibernate將Persistable對象轉換爲SQL插入語句?這必須是可能的,因爲這就是Hibernate在後臺執行的操作,但是我只需要將SQL Stmt寫入日誌文件,以便在出現數據庫故障並且保存Hibernate對象失敗的情況下進行錯誤處理。將Hibernate持久化對象轉換爲SQL插入語句
回答
這是一個內置功能。您可以配置Hibernate日誌要做到這一點:
log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER
log4j.additivity.org.hibernate.SQL=false
see here.
編輯:如果你想看到的parmeter值也許你可以使用this。我沒有嘗試,但如果它是有用的,請張貼您的經驗。
但是,這給了我SQL採用「?」的PreparedStatement格式的語句而不是參數。我正在尋找一些能夠編寫一個準備好執行的SQL進行日誌記錄的東西,然後可以將其讀取並執行。 – udit 2010-08-10 22:19:09
我不會真的稱此爲「內置功能」,因爲它只是爲了調試目的而記錄的內容。一個內置的功能可以讓Hibernate以編程方式公開你的訪問權限。 – 2010-08-11 02:33:42
+1用於P6Spy鏈接。這應該顯示具有實際值的語句。 – 2010-08-11 07:29:33
- 1. 將mysql插入語句轉換爲sql server插入語句?
- 2. Hibernate持久對象行爲
- 3. 對象持久化後Hibernate assertEquals失敗
- 4. java hibernate多持久化對象?
- 5. 將SQL語句轉換爲Linq-2-Sql
- 6. 將SQL語句轉換爲LINQ-to-SQL
- 7. 將SQL轉換爲LINQ To SQL語句
- 8. 使用持久化版本替換淺層Hibernate對象
- 9. 在Hibernate中持久化具有其對象標識的對象
- 10. SQL語句插入語句爲空?
- 11. 將Oracle解碼語句轉換爲SQL Server T-SQL語句
- 12. Hibernate QueryDsl插入語句
- 13. 異常hibernate插入語句
- 14. 將此SQL語句轉換爲LINQ
- 15. 將SQL語句轉換爲named_scope?
- 16. 將SQL CASE WHEN語句轉換爲C#
- 17. 將SQL語句轉換爲Linq
- 18. 將動態JOINS轉換爲SQL語句
- 19. 將LINQ轉換爲sql語句
- 20. 將WHERE邏輯轉換爲SQL語句
- 21. 將SQL語句轉換爲LINQ
- 22. 將sql語句轉換爲linq;
- 23. 將sql語句轉換爲cakephp statment
- 24. 將SQL語句轉換爲Drools規則
- 25. 將SQL語句轉換爲Linq?
- 26. 將Model.each轉換爲SQL語句
- 27. 將SQL語句轉換爲Linq
- 28. 將SQL語句轉換爲NHibernate查詢
- 29. 將XML轉換爲SQL INSERT語句
- 30. 將SQL select語句轉換爲Linq
僅僅因爲Hibernate執行它 - 生成SQL語句 - 在幕後並不意味着您正在尋找的是支持的。 Hibernate的目標是管理SQL數據庫中對象的生命週期;它不是一個SQL生成器。 – 2010-08-11 02:34:26
你需要一個jdbc代理驅動程序,這個問題本質上是一個重複的http://stackoverflow.com/questions/3403361/how-to-intercept-the-hibernate-generated-sql/3403571#3403571 – 2010-08-11 08:58:20