java、springboot、mongodb扩展simplemongorepository(2020)

tp5buhyn  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(685)

我在stackoverflow发现了很多问题。但都是几年前的事了。希望找到最新的解决方案。
我在自己的类中扩展simplemongorepository以添加一些自定义方法
这是我的密码。mongohelper.java文件

package com.customlibrary.mongodblibrary.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate; 
import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
import org.springframework.data.mongodb.repository.support.SimpleMongoRepository;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

import java.io.Serializable;

@Component
public class MongoHelper<T, ID extends Serializable> extends SimpleMongoRepository<T, ID> implements 
CustomerRepository<T , ID> {

/**
 * Creates a new {@link SimpleMongoRepository} for the given {@link MongoEntityInformation} and 
                 {@link MongoTemplate}.
 *
 * @param metadata        must not be {@literal null}.
 * @param mongoOperations must not be {@literal null}.
 */
public MongoHelper(MongoEntityInformation<T, ID> metadata, MongoOperations mongoOperations) {
    super(metadata, mongoOperations);
}

public void customMeth(){
    System.out.println("test");
}
}

这是我的密码。customerrepository.java文件

@Repository
public interface CustomerRepository<Customer, String> extends MongoRepository<Customer, String> {

}

我已经把这个放进了我的主要

@EnableMongoRepositories(repositoryBaseClass = MongoHelper.class)

但是出现了一个错误

Parameter 0 of constructor in com.customlibrary.mongodblibrary.service.MongoHelper required a bean of type 'org.springframework.data.mongodb.repository.query.MongoEntityInformation' that could not be found.

希望有人能给我一个解决办法

nzk0hqpo

nzk0hqpo1#

使用 @NoRepositoryBean 而不是 @Component 因为mongohelper应该是要扩展的基类,而不是spring管理的bean

相关问题