有沒有辦法從session.get(class name, id)
調用中獲取SQL查詢?我之前看到過這個帖子:How to get SQL from Hibernate Criteria API (*not* for logging),但它不包括查詢。從休眠狀態獲取SQL獲取
說明:我正在尋找一種API方法來獲取查詢字符串,而不是查詢日誌。換句話說,我問,如果有在哪裏,而不是一個方法(如下面toSql
):
Foo foo = session.get(Foo.class, id);
我可以這樣說:
String sqlOrHql = session.get(Foo.class, id).toSql();
// execute sqlOrHql to get foo, either through hibernate or manually using JDBC
請注意,由於以下原因,它應比從條件查詢中獲取SQL更爲複雜:1)如果您的實體與其他實體有關係,則get(clazz,id)可以執行多個SQL語句。 2)如果你有延遲加載,那麼當你得到實體時,並不是所有的語句都會被執行。 – nakosspy 2013-05-13 00:52:16