繁体   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