在查询Spring Data Repository之前,我需要刷新Oracle数据库中的实例化视图。我正在尝试通过存储库中的函数使用本机查询来执行此操作,如下所示。
@Query("BEGIN DBMS_SNAPSHOT.REFRESH('MY_VIEW', 'C'); END;", nativeQuery = true) fun refreshMaterializedView()
但是,java.lang.NegativeArraySizeException尽管在直接在数据库上运行时它可以正常工作,但我在调用此方法时却遇到了麻烦。我在这里做错了什么?是否有其他方法可以强制实例化视图刷新?
java.lang.NegativeArraySizeException
您需要使用注释您的方法@Modifying。它确实适用于DML语句,但也适用于此。
@Modifying
@Modifying @Query("BEGIN DBMS_SNAPSHOT.REFRESH('MY_VIEW', 'C'); END;", nativeQuery = true) fun refreshMaterializedView()