Spring Data CrudRepository 作为方法 Bean

Posted

技术标签:

【中文标题】Spring Data CrudRepository 作为方法 Bean【英文标题】:Spring Data CrudRepository as method Bean 【发布时间】:2016-01-29 14:30:38 【问题描述】:

有没有办法在配置类中将 Spring Repository 创建为 Bean?这样我就可以在一个类中拥有多个存储库,而不是为每个实体创建新的接口文件?

我尝试创建一个嵌套的@Repository 接口,但无法自动装配。

编辑: 尝试过(如前所述)

@Repository
public static interface CustomerRepository extends JpaRepository<Customer, Long> 

    List<Customer> findByLastNameStartsWithIgnoreCase(String lastName);

这是SpringBootApplication类中的内部类。我不能使用 @Bean 注释,因为它会产生编译错误

【问题讨论】:

请显示您尝试过的代码。 当然你不能使用@Bean方法。检测到接口并且 Spring Data 创建实现。您必须为所需的实体提供接口。无论是在单个文件中作为内部接口还是顶层,它们都必须存在。 嗯,但这正是问题所在——它不适用于内部类接口 为什么要将接口存储库定义为内部类? 好吧。正如您在帖子中看到的,我不想有 10 个空接口。我宁愿有一个可以在其中声明这些接口的类。 【参考方案1】:

原来有一种方法considerNestedRepositories。

【讨论】:

以上是关于Spring Data CrudRepository 作为方法 Bean的主要内容,如果未能解决你的问题,请参考以下文章

@Tailable(spring-data-reactive-mongodb) 等效于 spring-data-r2dbc

如何利用spring data mongodb 进行多条件查询

Spring Data 系列 Spring+JPA(spring-data-commons)

初探 spring data--- spring data 概述

spring-data-jpa 和 spring-boot-starter-data-jpa 的区别

无法将 Spring Data MongoDB + Spring Data JPA 与 Spring Boot 一起使用