Для поля countRepo в com.abc.serive.MysqlService требуется bean-компонент типа com.abc.repository.ClicksQuickReplyRepository, который не удалось найти

package com.abc.repository.ClicksQuickReplyRepository;

import com.abc.model.ClicksQuickReply;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;

@Repository
public interface ClicksQuickReplyRepository{

    @Query( value = "select notificationTag,count,button_id from fb_sent_messages where page_id=?1 and notificationTag in ?2", nativeQuery=true)
    List<ClicksQuickReply> getClickCount(@Param("pageID") String pageID, @Param("notificationTag")  String notificationTag);
}

Класс обслуживания MySQL

package com.abc.serive.MysqlService;

@Service
public class MysqlService {

@Autowired
    private ClicksQuickReplyRepository clicksQuickReplyRepository;

} 

Автосвязывание ClicksQuickReplyRepository приводит к ошибке:

Field clicksQuickReplyRepository in com.abc.serive.MysqlService required a bean of type 'com.abc.repository.ClicksQuickReplyRepository' that could not be found.

Я пробовал следующее, пытаясь исправить это:

  1. Добавьте @EnableJpaRepositories в класс SpringConfiguration
  2. Добавлено @SpringBootApplication(scanBasePackages = {"com.abc.repository"}) т. е. scanBasePackage // начинает приводить к той же ошибке для других пакетов

В какой упаковке @SpringBootApplication?

Andronicus 27.02.2019 05:46

пакет com.abc @Andronicus

S Khurana 27.02.2019 09:47
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
25
1

Ответы 1

Это может быть вызвано неправильным сопоставлением, в вашем запросе есть where page_id=?1, тогда как имя вашего параметра pageID. Они должны быть равны. Неправильное сопоставление приводит к тому, что bean-компонент не вводится.

Я изменил его по вашему предложению: @Query(value = "выберите уведомлениеTag,count,button_id из fb_sent_messages, где page_id=?1 и уведомлениеTag в ?2", nativeQuery=true) List<ClicksQuickReply> getClickCount(@Param("page_id") Строка page_id, @Param("notificationTag") СтрокаnotificationTag);

S Khurana 26.02.2019 22:37

Вы уверены, что это допустимые имена столбцов? один в camelCase, другой в _

Andronicus 26.02.2019 22:39

Да, это тоже перепроверено

S Khurana 26.02.2019 22:39

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