簡體   English   中英

如何檢查查詢最終傳遞了什么參數?

[英]How can I check what parameter is finally passed with the query?

有什么方法可以檢查查詢,如何構造查詢框架或傳遞什么值? 我想檢查這個查詢:

String hql = "from Scheduled where stime <= current_time()"; // QUERY

List list = session.createQuery(hql).list();

我想知道current_time()值是多少?

在休眠狀態下, current_time()不會替換為特定的時間-它作為SQL的一部分傳遞到數據庫,並在那里進行評估。 因此, current_time()將等於執行該語句時數據庫服務器上當前時間。

您可以啟用Hibernate日志記錄 ,這兩個參數應該對您有所幫助:

  • org.hibernate.SQL在執行所有SQL DML語句時記錄它們
  • org.hibernate.type記錄所有JDBC參數

如果您的基礎數據庫是SQL Server,則另一個選項是SQL Profiler。

這是log4j.properties中的條目,它對我有用以打印休眠查詢和參數。

log4j.logger.org.hibernate=DEBUG, stdout
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE,stdout

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM