【问题标题】:Custom MongoDB spring data repository自定义 MongoDB Spring 数据存储库
【发布时间】:2018-04-02 10:44:26
【问题描述】:

我想用 Spring 数据 mongodb 实现自定义 repo。 应用程序.java:

@SpringBootApplication
public class Application implements CommandLineRunner{

    @Autowired
    private CustomerRepositoryCustom repo;

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println(this.repo.customMethod());
    }
}

我的自定义存储库 CustomerRepositoryCustom.java

public interface CustomerRepositoryCustom {
    List<Customer> customMethod();
}

自定义实现CustomCustomerRepositoryImpl.java

  public class CustomCustomerRepositoryImpl implements CustomerRepositoryCustom {
        @Autowired
        private MongoTemplate mongoTemplate;

        @Override
        public List<Customer> customMethod() {
            return this.mongoTemplate.findAll(Customer.class);
        }

    }

代码结构

-Application.java
  dal
    model...
    repository
     -CustomCustomerRepositoryImpl.java
     -CustomerRepositoryCustom.java

当我尝试构建它时,我得到一个错误:

    **Description**:
Field repo in socketApp.Application required a bean of type 'socketApp.dal.repository.CustomerRepositoryCustom' that could not be found.


**Action**:
Consider defining a bean of type 'socketApp.dal.repository.CustomerRepositoryCustom' in your configuration.

【问题讨论】:

    标签: java spring mongodb spring-boot mongorepository


    【解决方案1】:

    您必须让 Spring 了解您的存储库。对于 Spring Boot 应用程序,这通常通过将此注释添加到您的应用程序来完成...

    @EnableMongoRepositories("com.package.path.to.repository")
    

    .... 从而告诉 Spring Boot 在哪里寻找 Mongo 存储库,然后让你的接口扩展 org.springframework.data.mongodb.repository.MongoRepository

    例如:

    public interface CustomerRepositoryCustom extends MongoRepository {
        List<Customer> customMethod();
    }
    

    或者,您可以使用 @Repository 注释您的 CustomCustomerRepositoryImpl 并确保它位于 Spring Boot 扫描的包中。

    【讨论】:

    • @Repository 工作正常。但是 @EnableMongoRepositories("socketApp.dal.repository") 不起作用 文件路径:C:\Users\{user}\Desktop\spring-mongodb\src\main\java\socketApp\dal\repository
    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 2017-02-09
    • 2014-06-24
    • 2018-10-06
    • 2018-01-05
    • 2017-09-19
    • 2015-06-18
    • 2019-06-25
    相关资源
    最近更新 更多