Spring Boot MyBatis-Plus 执行 PostgreSQL REFRESH MATERIALIZED VIEW
使用 Spring Boot & MyBatis-Plus 刷新 PostgreSQL 物化视图
本文介绍如何在 Spring Boot 项目中使用 MyBatis-Plus 对 PostgreSQL 数据库执行 REFRESH MATERIALIZED VIEW 语句,确保物化视图数据最新。
步骤:
-
配置依赖:
在项目的
pom.xml文件中添加 MyBatis-Plus 和 PostgreSQL 驱动依赖:<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>最新版本</version> </dependency> -
创建 Mapper 接口:
创建一个 Mapper 接口,例如
RoleDataScopeMapper,定义执行REFRESH MATERIALIZED VIEW语句的方法:@Mapper public interface RoleDataScopeMapper { @Update('REFRESH MATERIALIZED VIEW Role_Data_Scope') void refreshMaterializedView(); } -
注入 Mapper 并调用方法:
在服务类或控制器类中注入
RoleDataScopeMapper,并调用refreshMaterializedView()方法执行刷新操作:@Service public class RoleDataScopeService { @Autowired private RoleDataScopeMapper roleDataScopeMapper; public void refreshMaterializedView() { roleDataScopeMapper.refreshMaterializedView(); } } -
创建访问端点(可选):
创建一个控制器,用于在需要时触发视图刷新操作:
@RestController public class RoleDataScopeController { @Autowired private RoleDataScopeService roleDataScopeService; @GetMapping('/refresh-materialized-view') public String refreshMaterializedView() { roleDataScopeService.refreshMaterializedView(); return 'MATERIALIZED VIEW refreshed'; } }访问
/refresh-materialized-view路径即可触发视图刷新。
注意: 确保执行 REFRESH MATERIALIZED VIEW 语句的数据库用户拥有足够的权限。
原文地址: https://www.cveoy.top/t/topic/fwxv 著作权归作者所有。请勿转载和采集!