使用toplink必需查询提示时指定查询超时

时间:2010-03-19 15:00:46

标签: java jpa glassfish toplink-essentials

对于glassfish v2,我在网上搜索过,在使用TopLink基本查询提示时,无论如何都无法指定查询超时。我们有另一种选择迁移到EclipseLink,但这是不可行的。

尝试了解决方案 http://forums.oracle.com/forums/thread.jspa?threadID=974732&tstart=-1 但似乎可以设置超时值的DatabaseQuery实际上是Toplink,而不是TopLink必备。

我们是否有其他方法来指示JDBC驱动程序除了查询提示之外的此超时值?我需要在查询的基础上而不是基于系统的基础上进行(这只是为了改变DISTRIBUTED_LOCK_TIMEOUT的值)

1 个答案:

答案 0 :(得分:0)

根据Toplink JPA关于Query Hints

的文档
  

您可以使用以下TopLink JPA   提示(有关这些的更多详细信息   设置请参考TopLink   文档)

     
      
  • fetchSize 采用整数。允许   用户设置a的fetchSize   TopLink查询。
  •   
  • referenceClass 需要   一类。覆盖目标类   查询。
  •   
  • cacheUsage 需要   整数。描述了TopLink如何制作   使用缓存来查询对象。
  •   
  • 刷新采用布尔值。如果应刷新缓存,则设置为true   数据库。
  •   
  • lockMode 需要   整数。设置为悲观锁定。
  •   
  • 表达式使用TopLink表达式对象。用于查询   使用TopLink API。
  •   
  • 超时需要   整数。设置查询超时时间   milseconds。
  •   

所以我的理解是你应该能够做到这一点:

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

虽未经过测试。