Невозможно расширить пользовательский интерфейс репозитория данными Spring и репозиторием mongodb. - PullRequest
0 голосов
/ 31 марта 2019

Интерфейс репозитория пользователя:

 public interface IUserRepository extends MongoRepository<User, Long>, IUserDAO {

 }

Интерфейс DAO пользователя:

public interface IUserDAO {

        List<User> query(String field, String val);
}

Реализация DAO пользователя:

@Repository
@Qualifier("UserDAO")
public class UserDAO implements IUserDAO {

    @Autowired
    private MongoTemplate mongoTemplate;


    @Override
    public List<User> query(String field, String val) {
        ....
    }

}

Фасад пользователя:

@Component
public class UsersFacade extends BaseFacade<User> implements IUsersFacade {

    static Logger logger = Logger.getLogger(UsersFacade.class.getName());

    @Autowired
    private IUserRepository usersRepository;



}

Пользователи:

@Document(collection = "users")
public class User {

    @Id
    private String id;
    private String name;

    //getter 
    //setter
}

Это ошибка, которую я получаю:

Org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания компонента с именем 'usersController':Неудовлетворенная зависимость выражается через поле usersFacade;Вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем 'usersFacade': Неудовлетворенная зависимость, выраженная через поле 'usersRepository';вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'IUserRepository': сбой вызова метода init;Вложенное исключение: org.springframework.data.mapping.PropertyReferenceException: не найдено свойство запрос для типа Пользователь!

Приведенное выше сообщение об ошибке было изменено, если я изменяю подписьизменив имя метода на query1, я получаю:

.... Ошибка вызова метода init;вложенное исключение: org.springframework.data.mapping.PropertyReferenceException: не найдено свойство query1 для типа User!

Я предполагаю, что по какой-то причине его ожидаемое совпадение междуимя файла в файлах пользователей соответствует имени методов ... если я создаю файл в именованном запросе User.java, приложение запускается.

Чего мне здесь не хватает?Я хотел бы использовать функциональность MongoRepository и добавить свои собственные операции с репозиторием - чего мне здесь не хватает?

Спасибо!

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