当前位置: 首页 > 知识库问答 >
问题:

Spring Boot中JPA存储库“没有合格类型bean”

锺离良哲
2023-03-14

我正在用Spring Boot实现Rest API。由于我的实体类来自另一个包的包,所以我必须使用注释entityscan来指定。此外,我使用enableJparepositories指定定义JPA存储库的包。下面是我的项目的样子:

//Application.java

@Configuration
@EnableAutoConfiguration
@ComponentScan
@EntityScan("org.mdacc.rists.cghub.model")
@EnableJpaRepositories("org.mdacc.rists.cghub.ws.repository") 

在我的controller类中,我有一个SeqService对象自动连线。

//SeqController.java

@Autowired private SeqService seqService;

@RequestMapping(value = "/api/seqs", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<SeqTb>> getSeqs() {
    List<SeqTb> seqs = seqService.findAll();
    return new ResponseEntity<List<SeqTb>>(seqs, HttpStatus.OK);
}

seqservice是一个接口,我通过它为seqserviceBean创建了一个Bean类。在seqServiceBean中,我自动连接了JPA存储库:

// SeqServiceBean.java

@Autowired private SeqRepository seqRepository;

@Override
public List<SeqTb> findAll() {
    List<SeqTb> seqs = seqRepository.findAll();
    return seqs;
}

//SeqRepository.java

@Repository
public interface SeqRepository extends JpaRepository<SeqTb, Integer> {

    @Override
    public List<SeqTb> findAll();

    public SeqTb findByAnalysisId(String analysisId);
}
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.mda.rists.cghub.ws.repository.SeqRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]

我不明白这个错误。跟排位bean有什么关系?

共有1个答案

鲁鸿朗
2023-03-14

您扫描了enablejparepositories中的错误包。没有org.mdacc.rists.cghub.ws.repository包。因此,请改用以下内容:

@EnableJpaRepositories("org.mda.rists.cghub.ws.repository") 

Spring Boot不需要任何特定的代码布局来工作,然而,有一些最佳实践会对您有所帮助。查看spring boot文档中关于构造代码的最佳实践。

 类似资料:
  • 我正在用Spring Boot实现Rest API。因为我的实体类来自另一个包,所以我必须用注释来指定它。另外,我使用来指定定义JPA存储库的包。下面是我的项目的样子: 在我的controller类中,我有一个SeqService对象Autowired。 是一个接口,我从它为创建了一个Bean类。在中,我对JPA存储库进行了描述: 我不明白这个错误。和排位赛bean有什么关系?

  • 我试图通过BaseRepository接口和BaseRepositoryImpl扩展**SimpleParepository** BaseRepositoryImpl扩展了**SimpleParepository**并实现了BaseRepository。 此外,我还有一些其他的存储库,如CandidateRepository和员工存储库,它们扩展了基本存储库。 下面您可以看到以下错误代码: 要查看

  • 我有一个springboot项目,为了执行请求,我正在连接到我的mysql数据库。我有一个实体ExportBatch: 我在ExportBatchRepository中定义了一个新方法: 在我的控制器里,我是这样做的: 当我调用“/GetLastBatchsProblemes”时会遇到这个异常:java.lang.ClassCastException:[Ljava.lang.Object;不能强制

  • 我最近尝试将r2dbc与postgres“0.8.8.RELEASE”(pg r2dbc maven dependecy)和spring boot“2.5.2”一起使用 我在应用程序中声明了以下属性。yml: 我的pplication.java: 我明确指出,“fr.company.common”在另一个子项目中,有自己的实体 我的DatabaseConfig类: 我的存储库: 我的实体: 最后,

  • 问题内容: 我使用的是Spring-boot,因此在Tomcat 7中部署了战争。启动应用程序时,我得到以下信息: 这是我的应用程序启动的方式: 当我的Spring控制器处理连接时: 它在userService上执行getUser: 使用userDao查找实体: 我在/ src / main / resources中具有以下spring-config.xml: 最后但并非最不重要的是以下/src/

  • 我正在尝试使用spring library for google cloud API: Spring-Cloud-gcp-starter-vision 但Spring应用程序上下文无法加载,出现错误: 引起原因:org.springframework.beans.factory.不满意依赖异常:错误创建在类路径资源[org/spring框架/云/gcp/自动配置/视觉/CloudVisionAut