休眠可能会导致此“获取乱序”错误吗?

Rid*_*lon 9 java oracle hibernate

我尝试使用 Hibernate/Spring JPA 执行此查询(在 Oracle DB 中):

@Query( value = "DELETE from MY_TABLE where ID = :ID", nativeQuery = true)
    void delete(Long ID);
Run Code Online (Sandbox Code Playgroud)

表上有一个 BEFORE DELETE 触发器,它弥补了我无法更改的不良表设计,它围绕从依赖表中删除行运行,以便基本 DELETE 不会导致任何外键错误。我相当确定这不应该是一个问题,但如果有,请告诉我。

现在,执行此查询时会导致ORA-01002: fetch out of sequence错误,根据谷歌的说法,该错误是在a fetch has been attempted from a cursor which is no longer valid. (要完全清楚的是,我没有使用我的查询或触发器启动任何游标)

但是,该行及其所有依赖项实际上 成功删除。因此,我不确定是什么导致了错误,希望得到你们的帮助

Nit*_*sal 18

方法应该是:

@Modifying
@Query( value = "DELETE from MY_TABLE where ID = :ID", nativeQuery = true)
    void delete(@Param("ID") Long ID);
Run Code Online (Sandbox Code Playgroud)

尝试此操作并检查问题是否仍然存在。

  • 你的导入是错误的。应该是 org.springframework.transaction.annotation.Transactional 导入这个包然后检查。 (3认同)