Java, Springboot, MongoDB, расширение SimpleMongoRepository (2020) - PullRequest
3 голосов
/ 24 января 2020

Я нашел много проблем с этим здесь, в 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> {

}

И я уже поместил это в свой Main

@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.

Надеясь Кто-нибудь может дать мне решение

1 Ответ

1 голос
/ 24 января 2020

Используйте @NoRepositoryBean вместо @Component для MongoHelper, поскольку MongoHelper должен быть базовым классом для расширения, а не компонентом, управляемым Spring

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...