0

我目前遇到了一个问题,我怀疑这可能是 Hibernate 或 Spring Data JPA 的问题。我的底层关系数据库是 Oracle PL/SQL。

我有一个 Spring Data 的 JpaRepository 的简单子接口,如下所示:

@Component
@Repository
public interface MyEmailRepository extends JpaRepository<Email, Integer> {

@Modifying
@Transactional
@Query("UPDATE email e" +
        "SET e.toAddress = 'someValue' " +
        "WHERE e.foreign_key IN ( SELECT f.primary_id FROM Feeder f WHERE f.ids in (:ids) )")
int deleteTheEmail(@Param("ids") List<Integer> ids);

如您所见,这是一个嵌套查询。当这段代码执行时,线程似乎挂了很长时间,什么都没有完成,除非我手动终止进程。如果我使用 SQL Developer 之类的工具执行相同的查询,查询会运行得非常快。

有什么想法、建议吗?谢谢!

4

1 回答 1

0

此问题已得到解决。问题是由于某些资源泄漏,基础表上存在表锁......即未关闭的连接/悬空事务。

于 2013-10-29T21:35:44.643 回答