Spring JPA bean не найден исключение

Я использую Spring JPA в своем проекте. Компонент моего репозитория не вызывается. Я получаю исключение null pointerException.

Мой репозиторий:

public interface UserRepository extends JpaRepository<User, Long>{

}

URL моего объекта:

@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    long id;

    @Column(name = "emailid")
    String emailId;

    @Column(name = "role")
    UserRole role;


}

Моя конфигурация JPA:

@Configuration
@EnableJpaRepositories(entityManagerFactoryRef = "appentitymanagerfactory",
transactionManagerRef = "apptransactionmanager",
basePackages = "com.tree.employeeapp.entity")
public class JpaConfiguration {
    @Bean
    (name = "appentitymanagerfactory")
    public LocalContainerEntityManagerFactoryBean externalEntityManagerFactory(
         EntityManagerFactoryBuilder   builder, @Qualifier("employeeappdatasource") DataSource dataSource) {
        return builder.dataSource(dataSource)
                .packages("com.tree.employeeapp.entity")
                .build();
    }

    @Bean(name = "apptransactionmanager")
      public PlatformTransactionManager barTransactionManager(
        @Qualifier("appentitymanagerfactory") EntityManagerFactory
        entityManagerFactory
      ) {
        return new JpaTransactionManager(entityManagerFactory);
      }
}

Мой контроллер такой:

@Controller
public class treeAppsControllerImpl implements treeAppsController{

private UserRepository userRepository;
@Autowired
public treeAppsControllerImpl(UserRepository userRepository) {
    this.userRepository = userRepository;
}

@Override
public String getAllUsers(Model model) {
    List<Users> listOfUsers = new ArrayList<>();

    for(User user: userRepository.findAll())
            listOfUser.add(user);

    List<User> listOfUser = UserRepository.findAll();
    model.addAllAttributes(listOfUsers);
    return "getAllUsers";
}

журнал показывает эту ошибку:

Параметр 0 конструктора в com.tree.employeeapp.controller.treeAppsControllerImpl требовал bean-объекта типа com.tree.employeeapp.repository.UserRepository, который не удалось найти. Действие: Рассмотрите возможность определения bean-компонента типа com.tree.employeeapp.repository.UserRepository в вашей конфигурации.

Рассмотрите возможность определения bean-компонента типа com.tree.employeeapp.repository.UserRepository в вашей конфигурации. вы это определили? Я заметил, что в вашем коде есть как заглавные буквы, так и верблюжий случай UserRepo.
Compass 30.04.2018 18:01

Это возможно, но я читал, что когда мы используем @EnableJPARepository, Spring автоматически создает bean-компонент расширенных интерфейсов JPARepository. Это для одного уровня репозитория. что, если существует 20 различных уровней DAO репозитория?

Vaibhav Savala 30.04.2018 18:06

Действительно ли UserRepository находится в упаковке, com.tree.employeeapp.entity как указано в @EnableJpaRepositories#basePackages?

The Head Rush 30.04.2018 18:21

Нет, он находится в com.tree.employeeapp.repository

Vaibhav Savala 30.04.2018 18:23

Тогда это должно быть то, на что указывает basePackages.

The Head Rush 30.04.2018 18:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
318
1

Ответы 1

Отметить UserRepository как репозиторий

@Repository
public interface UserRepository extends JpaRepository<User, Long>{
}

Другие вопросы по теме