【问题标题】:Spring JPA Repository instance not created未创建 Spring JPA Repository 实例
【发布时间】:2015-03-15 22:39:45
【问题描述】:

我遵循了 Spring 组织为 Spring Data JPA 提供here 的示例。

这是我的存储库界面:

public interface CustomerRepository extends CrudRepository<Customer, Long> {

    List<Customer> findByLastName(String lastName);
}

这是我的 Application 类的 sn-p:

@Configuration
@EnableAutoConfiguration
public class Application {

    public static void main(String[] args) {

        ConfigurableApplicationContext context = SpringApplication.run(Application.class);
        CustomerRepository repository = context.getBean(CustomerRepository.class);

我收到以下错误:

Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [hello.CustomerRepository] is defined

我尝试将@Repository 注释添加到CustimerRespository 并将@ComponentScan 注释添加到Application 类,但结果是一样的。

【问题讨论】:

标签: spring exception repository spring-data spring-data-jpa


【解决方案1】:

尝试在 Application 类中添加 @EnableJpaRepositories 和 @ComponentScan 注解,看看添加它们是否能解决您的问题。

如果仍然不起作用,请在您的 CustomerRepository 接口中添加 @Configuration,然后在 Application 类中添加 @Import(CustomerRepository .class)。

如果可行,请告诉我。

【讨论】:

  • 不需要前者。后者是完全错误的。 :)
  • 我知道后者不正确,这只是一种识别是否存在其他问题的方法。
  • 我尝试了你的第一个建议(添加@EnableJpaRepositories 和@ComponentScan),它给出了以下错误:线程“main”中的异常org.springframework.beans.factory.BeanCreationException:创建名称为'的bean时出错jpaMapppingContext': init 方法调用失败;嵌套异常是 java.lang.IllegalArgumentException:必须存在至少一个 JPA 元模型!”
  • 你用的是什么spring版本?
【解决方案2】:

也许尝试添加你的配置类

@EnableJpaRepositories
@EnableConfigurationProperties()
@EntityScan({"com.project.app.entities" })

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,@EnableAutoConfiguration 解决了。

    如果它不能自动工作,请尝试禁用 JpaRepositoriesAutoConfiguration 并明确指定存储库基础包:

    @EnableAutoConfiguration(exclude = {
        JpaRepositoriesAutoConfiguration.class
    }
    @EnableJpaRepositories(basePackages = {"com.project.app.repositories"})
    

    祝你好运。

    【讨论】:

    • 谢谢!这有助于解决At least one JPA metamodel must be present! 异常的问题。 Spring Boot 1.5.6.RELEASE.
    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多