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"