[英]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.