Spring hibernate:无法提取结果集元数据

ste*_*e06 0 java sql spring hibernate jpa

我尝试在我的 Dao 中使用本机查询(从 JpaRepository 扩展),但我收到此异常:

org.springframework.orm.jpa.JpaSystemException: Could not extract result set metadata; nested exception is org.hibernate.HibernateException: Could not extract result set metadata
Run Code Online (Sandbox Code Playgroud)

这是我的本机查询:

@Repository
public interface BenchDao extends JpaRepository<Bench, Long> {


@Query(nativeQuery=true,value="UPDATE TF_BENCH SET ISDELETED = 1, SEQ = (select CASE WHEN (min(BENCH.SEQ) < 1) THEN (min(BENCH.SEQ)-1) ELSE -1 END from TF_BENCH BENCH WHERE BENCH.STAGE = (select BENCH.STAGE from TF_BENCH BENCH WHERE id =29302)) WHERE id =29302")
void deleteBench();
Run Code Online (Sandbox Code Playgroud)

当我在 Oracle SQL 开发人员上尝试此请求时,它可以工作,但通过 spring 和 hibernate 它不会。

在堆栈跟踪异常中我也有这样的消息:

Caused by: java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
Run Code Online (Sandbox Code Playgroud)

我试图用谷歌搜索异常消息,但我什么也没发现......

Lio*_*ère 5

我认为更好的解决方案是将 @Modifying 注释添加到您的方法中。

请参阅以下答案的更多信息:Spring Data JPA 删除本机查询抛出异常