一尘不染

在Spring数据存储库中刷新Oracle物化视图

spring-boot

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

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

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


阅读 428

收藏
2020-05-30

共1个答案

一尘不染

您需要使用注释您的方法@Modifying。它确实适用于DML语句,但也适用于此。

@Modifying
@Query("BEGIN DBMS_SNAPSHOT.REFRESH('MY_VIEW', 'C'); END;", nativeQuery = true)
fun refreshMaterializedView()
2020-05-30