在我们的代码中,我们有许多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提供程序,并在数据库和持久性工具窗口中设置数据源。
答案 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.*"/>
删除其中任何一行都解决了这个问题。