我目前遇到了一个问题,我怀疑这可能是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之类的命令执行相同的查询,则查询运行得非常快。
有什么想法和建议吗?谢谢!
发布于 2013-10-30 05:35:45
此问题已解决。问题是,由于一些资源泄漏,基础表上存在表锁……即,未关闭的连接/悬空的事务。
https://stackoverflow.com/questions/19642020
复制相似问题