刷新 Spring Data Repository 中的 Oracle 物化视图

Ale*_*lex 1 oracle hibernate spring-data-jpa kotlin spring-boot

在查询 Spring Data Repository 之前,我需要刷新 Oracle 数据库中的物化视图。我尝试通过存储库中的函数和本机查询来执行此操作,如下所示。

@Query("BEGIN DBMS_SNAPSHOT.REFRESH('MY_VIEW', 'C'); END;", nativeQuery = true)
fun refreshMaterializedView()
Run Code Online (Sandbox Code Playgroud)

但是,我java.lang.NegativeArraySizeException在调用此方法时遇到了问题,尽管它在直接在数据库上运行时工作正常。我在这里做错了什么?有没有其他方法可以强制物化视图刷新?

Jen*_*der 5

您需要用 注释您的方法@Modifying。它实际上是为 DML 语句设计的,但也适用于此。

@Modifying
@Query("BEGIN DBMS_SNAPSHOT.REFRESH('MY_VIEW', 'C'); END;", nativeQuery = true)
fun refreshMaterializedView()
Run Code Online (Sandbox Code Playgroud)