簡體   English   中英

使用toplink基本查詢提示時指定查詢超時

[英]specify query timeout when using toplink essential query hint

對於glassfish v2,我已經在網上搜索了,使用TopLink基本查詢提示時,無論如何我都找不到指定查詢超時的信息。 我們還有另一個選擇可以遷移到EclipseLink,但這是不可行的。

已經在http://forums.oracle.com/forums/thread.jspa?threadID=974732&tstart=-1中嘗試了該解決方案,但似乎可以設置超時值的DatabaseQuery實際上是對Toplink而言,而不是TopLink必不可少的。

除了查詢提示以外,我們還有其他方法可以指示JDBC驅動程序獲取此超時值嗎? 我需要基於查詢而不是基於系統(只是更改DISTRIBUTED_LOCK_TIMEOUT的值)

根據有關查詢提示的Toplink JPA文檔:

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

  • fetchSize取一個整數。 允許用戶設置TopLink查詢的fetchSize。
  • referenceClass接受一個類。 覆蓋查詢的目標類。
  • cacheUsage取一個整數。 描述TopLink如何利用緩存來查詢對象。
  • refresh需要一個布爾值。 如果應從數據庫刷新緩存,則設置為true。
  • lockMode取一個整數。 設置為悲觀鎖定。
  • expression獲取一個TopLink Expression對象。 用於使用TopLink API進行查詢。
  • 超時接受一個整數。 設置查詢超時(以毫秒為單位)。

因此,我的理解是您應該能夠做到這一點:

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

雖然沒有測試。

暫無
暫無

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

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