IntelliJ“无法自动装配”。对于Spring JPA存储库,检查“[...]多个bean”

时间:2014-08-29 15:35:38

标签: java spring hibernate jpa intellij-idea

在我们的代码中,我们有许多Spring JPA存储库,每个模型类都有一个。它们被定义为(其中<Name>是我们的模态类的名称):

@Repository
public interface <Name>Repository implements JpaRepository<Name, Long> {
    // …
}

我们使用@Inject中的javax注释将它们注入我们的bean:

@Inject
public void set<Name>Repository(<Name>Repository <name>Repo) {
    this.<name>Repo = <name>Repo;
}

private <Name>Repository <name>Repo;

问题在于,IntelliJ将<name>Repo函数中的set<Name>Repository作为错误标记为:

  

无法自动装配。有多个“存储库”的bean。类型。豆类:回购,回购。

这只是检查的一个问题。编译和运行我们的应用程序工作正常,但是为了使IJ中的检查可用,这是一个大问题。任何人都有关于如何使IntelliJ表现的建议吗?

作为参考,我们使用Hibernate作为我们的JPA提供程序,并在数据库和持久性工具窗口中设置数据源。

2 个答案:

答案 0 :(得分:12)

我也有同样的问题。我刚刚在我的Spring Data JPA存储库中注释掉了@Repository注释,一切正常,IntelliJ IDEA也很高兴!

答案 1 :(得分:2)

原来我有两个上下文在我的春天applicationContext.xml两次拿起相同的课程:

<mongo:repositories base-package="com.example.persistence.repositories.*"/>
...
<context:component-scan base-package="com.example.persistence.repositories.*"/>

删除其中任何一行都解决了这个问题。