JPA 超时在 SQL 服务器上不起作用



all.

我编写了一个使用 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,以防查询无法在行下获得锁。但它没有用,它总是堵在那里。

是不是出了什么问题?还是SQL服务器驱动程序不支持超时?

多谢。

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

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

"eclipselink.jdbc.timeout"="100"

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

"eclipselink.pessimistic-lock"="LockNoWait"

相关内容

  • 没有找到相关文章

最新更新