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.
Я пробовал следующее, пытаясь исправить это:
@EnableJpaRepositories в класс SpringConfiguration@SpringBootApplication(scanBasePackages = {"com.abc.repository"})
т. е. scanBasePackage // начинает приводить к той же ошибке для других пакетовпакет com.abc @Andronicus




Это может быть вызвано неправильным сопоставлением, в вашем запросе есть 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);
Вы уверены, что это допустимые имена столбцов? один в camelCase, другой в _
Да, это тоже перепроверено
В какой упаковке
@SpringBootApplication?