使用JPA Query Annotation更新查询到Oracle 11g挂起

时间:2018-02-02 14:17:01

标签: java oracle hibernate oracle11g spring-data-jpa

我正在尝试使用带有JPA到Oracle 11g的Query Annotation更新一个简单的行

这是我的代码:

@Transactional()
@Modifying
@Query(value="UPDATE Irregularities SET IRREST_ID = 0 WHERE IRREGS_ID = 1006", nativeQuery = true)
int updateState();

这工作正常,但由于某种原因不再适用。没有错误,只是挂起。

如果我尝试在同一个BDD中使用Oracle SQL Developer运行相同的查询,则可以正常工作。

可能是锁表问题?为什么在SQL Developer中工作但在Springboot中没有?

非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以找到具有该查询的锁(将其作为sysdba运行)

select
(select username || ' - ' || osuser || ' - ' || machine from v$session where sid=a.sid) blocker,
a.sid || ', ' ||
(select serial# from v$session where sid=a.sid) sid_serial,
' is blocking ',
(select username || ' - ' || osuser || ' - ' || machine from v$session where sid=b.sid) blockee,
b.sid || ', ' ||
(select serial# from v$session where sid=b.sid) sid_serial
from v$lock a, v$lock b
where a.block = 1
and b.request > 0
and a.id1 = b.id1
and a.id2 = b.id2;