0

全部。

我编写了一个使用 JPA 连接 Azure sql DB 的程序,在代码中,我将查询超时设置如下:

Map<String,Object> map = new HashMap<String, Object>();
map.put("javax.persistence.lock.timeout", 0);
return this.getEntityManager().find( cls, id,  LockModeType.PESSIMISTIC_WRITE,map);

我希望它会立即返回null,以防查询无法获得行下的锁。但它没有用,它总是在那里阻塞。

有什么问题吗?还是 sqlserver 驱动程序不支持超时?

多谢。

4

1 回答 1

0

它可能不受支持,但如果您包含生成的 SQL,则可以确认这一点。

您也可以尝试设置查询超时,

"eclipselink.jdbc.timeout"="100"

或者,如果您使用的是 EclipseLink,您可以使用,

"eclipselink.pessimistic-lock"="LockNoWait"
于 2013-06-10T14:25:19.640 回答