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 实现,以及一个仅提供存储过程名称的方法程序。
但是,与每个存储库上的注释查询方法相比,这将是相当多的代码和更复杂的代码。
我正在使用 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 实现,以及一个仅提供存储过程名称的方法程序。
但是,与每个存储库上的注释查询方法相比,这将是相当多的代码和更复杂的代码。