Spring 数据存储库 - 所有存储库的通用方法

Spring data repository - common method for all repositories

我正在使用 Spring boot 2 和 Reactive 存储库来执行存储过程,这将 return 计数。我有 30 个存储过程,它们都只是 return 一个数字并且不带任何参数。

因此创建了一个存储过程模型 StroedProcDomain.java 和一个示例存储库,如下所示。

@Repository
public interface JobRepository extends ReactiveCrudRepository<StroedProcDomain, Long> {

    @Query("CALL JOB_LOAD()")
    Mono<Integer> executeProc();

}

需要创建 30 个这样的存储库,并希望强制所有存储库使用相同的方法

Mono<Integer> executeProc()

但存储过程名称会有所不同。所以每个存储库的@Query 都会不同。

实现此目标的最佳方法是什么?

目前,我有 30 个存储库。想要一个基本存储库以强制使用方法名称。

理论上,您可以在一个公共接口上放置两个方法:您的实际查询方法,它将通过调用存储过程的 custom method 实现,以及一个仅提供存储过程名称的方法程序。

但是,与每个存储库上的注释查询方法相比,这将是相当多的代码和更复杂的代码。