Получение UnsatisfiedDependencyException периодически для репозитория - PullRequest
0 голосов
/ 30 мая 2018

В моем проекте я создал интерфейс хранилища, реализовав CrudRepository.Моя основная база данных - Кассандра.Я периодически получаю сообщение об ошибке ниже, и мое приложение не запускается -

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userHelper': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.org.retail.userops.repository.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Существуют другие интерфейсы репозитория, которые работают нормально.

Моё весеннее загрузочное приложение -

@SpringBootApplication
@Configuration
@ComponentScan( basePackages = "com.org.retail")
@EnableCassandraRepositories( basePackages = { "com.org.retail.userops.repository" })
public class UserApplication {

    /**
     * The main method.
     *
     * @param args
     *            the arguments
     */
    public static void main( String[] args) {
        SpringApplication.run(UserApplication.class, args);
    }

    /**
     * Rest template.
     *
     * @param builder
     *            the builder
     * @return the rest template
     */
    @Bean
    public RestTemplate restTemplate( RestTemplateBuilder builder) {
        return builder.build();
    }
}

Это интерфейс UserRepository -

package com.org.retail.userops.repository;

import java.util.List;

import org.springframework.data.cassandra.repository.Query;
import org.springframework.data.repository.CrudRepository;

import com.org.retail.userops.domain.User;

    public interface UserRepository extends CrudRepository<User, String> {

        @Query( "select * from user where userid=?0 and userstatus IN (?1)")
        List<User> findByUserIdAndUserStatus( String userId, List<String> statusList);
    }

Иногда приложение встает, а иногда нет, поэтому это странно.Я подозреваю, что при загрузке хранилища произошла ошибка Cassandra.Есть ли способ увидеть ошибки sql при запуске при весенней загрузке?

1 Ответ

0 голосов
/ 30 мая 2018

Добавьте @Repository (или @Service или @Component) поверх класса UserRepository. Это может решить проблему.

Но если проблема только с перебоями, то могут быть проблемы с подключением к базе данных cassandra с вашего локального компьютера.

Чтобы посмотреть, какие запросы идут, добавьте их в application.properties file

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
logging.level.org.hibernate.type=TRACE

Чтобы увидеть, что весна делает за кулисами или при запуске, добавьте:

logging.level.org.springframework=DEBUG
...