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

在Spring数据存储库中刷新Oracle物化视图,oracle,hibernate,spring-boot,kotlin,spring-data-jpa,Oracle,Hibernate,Spring Boot,Kotlin,Spring Data Jpa,在查询Spring数据存储库之前,我需要刷新Oracle数据库中的物化视图。我正试图通过存储库中的一个带有本机查询的函数来实现这一点,如下所示 @Query("BEGIN DBMS_SNAPSHOT.REFRESH('MY_VIEW', 'C'); END;", nativeQuery = true) fun refreshMaterializedView() 然而,当调用此方法时,我得到了java.lang.NegativeArraySizeException,尽管它直接在数据库上运行时效果

在查询Spring数据存储库之前,我需要刷新Oracle数据库中的物化视图。我正试图通过存储库中的一个带有本机查询的函数来实现这一点,如下所示

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

然而,当调用此方法时,我得到了
java.lang.NegativeArraySizeException
,尽管它直接在数据库上运行时效果很好。我做错了什么?是否有其他方法强制物化视图刷新?

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

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

通过
@修改
annotation@JensSchauder谢谢,这成功了!如果你想把这个作为一个答案,我会接受的。