java - com.abc.serive.MysqlService 中的字段 countRepo 需要类型为 'com.abc.repository.ClicksQuickReplyRepository' 的 bean,但无法找到

标签 java mysql sql spring spring-boot

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;

} 

Autowiring 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//开始导致其他包出现相同的错误

最佳答案

这可能是由于错误映射造成的,您的查询中存在 where page_id=?1,而您的参数名称是 pageID。这些应该是平等的。错误的映射导致没有bean注入(inject)。

关于java - com.abc.serive.MysqlService 中的字段 countRepo 需要类型为 'com.abc.repository.ClicksQuickReplyRepository' 的 bean,但无法找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54894356/

相关文章:

java - 如何将数据从一个 Activity 传递到当前可见/Activity Activity ?这是一个很好的共同模式吗?

mysql - 在 phpmyadmin 中更改默认排序规则

sql - 垂直中的 ALTER 表

java - 使用 AndEngine 的加速器传感器方向

java - Dropwizard/JAX-RS 1.x (JSR 311) 中的资源链接

java - 我该如何修复这个碰撞检测 block ?

php - 应用程序在后台向数据库发送指令

mysql - 如何使用 Eclipse IDE 设置 MySQL?

sql - 通过在 T-SQL 中将值作为局部变量传递来设置兼容性级别

sql - ORA-00979: 不是一个带有简单示例的 GROUP BY 表达式