2010-03-19 124 views
1

對於glassfish v2,我已經通過網絡進行了搜索,並且無論如何我無法找到指定使用TopLink基本查詢提示時的查詢超時。我們有另一種遷移到EclipseLink的選項,但這不可行。使用toplink基本查詢提示時指定查詢超時

試過 http://forums.oracle.com/forums/thread.jspa?threadID=974732&tstart=-1 的解決方案,但似乎DatabaseQuery哪一個可以設置超時值實際上是Toplink,而不是TopLink必不可少的。

我們是否有其他方式指示JDBC驅動程序查詢提示以外的超時值?我需要做的是查詢的基礎,而不是系統的基礎上(這僅僅是改變DISTRIBUTED_LOCK_TIMEOUT的值)

回答

0

根據Toplink的JPA的文檔約Query Hints上:

您可以使用以下TopLink的JPA 提示(關於這些 設置的更多詳細信息,請參考TopLink 文檔)

  • FETCHSIZE取整數。允許用戶設置 TopLink查詢的fetchSize。
  • referenceClass需要 一個類。覆蓋查詢的目標類 。
  • cacheUsage採取一個整數 。介紹TopLink如何使用緩存來查詢對象 。
  • 刷新採用布爾值。如果緩存應該從 數據庫刷新,則設置爲true。
  • lockMode採取一個整數 。設置爲悲觀鎖定。
  • 表達式獲取TopLink表達式對象。用於使用TopLink API查詢 。
  • timeout採取一個整數 整數。將查詢超時設置爲 毫秒。

所以我的理解是,你應該能夠做到這一點:

Query queryEmployeesByFirstName = em.createNamedQuery("findAllEmployeesByFirstName"); 
queryEmployeesByFirstName.setHint("timeout", new Integer(5000)); 

雖然未經測試。