Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ";无法自动连线。”;“检查”;[&x2026;]多个bean”;用于Spring JPA存储库_Java_Spring_Hibernate_Jpa_Intellij Idea - Fatal编程技术网

Java IntelliJ";无法自动连线。”;“检查”;[&x2026;]多个bean”;用于Spring JPA存储库

Java IntelliJ";无法自动连线。”;“检查”;[&x2026;]多个bean”;用于Spring JPA存储库,java,spring,hibernate,jpa,intellij-idea,Java,Spring,Hibernate,Jpa,Intellij Idea,在我们的代码中,我们有许多SpringJPA存储库,每个模型类一个。它们被定义为(其中是我们模态类的名称): 问题在于IntelliJ在setRepository函数中的Repo下加下划线,表示文本错误: 无法自动连线。存在多个“Repository”类型的bean。豆子:回购,回购 这只是检查的一个问题。编译和运行我们的应用程序可以很好地工作,但是为了使IJ中的检查可用,这是一个大问题。有人对如何让IntelliJ表现有什么建议吗 作为参考,我们使用Hibernate作为我们的JPA提供程序,

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

问题在于IntelliJ在
setRepository
函数中的
Repo
下加下划线,表示文本错误:

无法自动连线。存在多个“Repository”类型的bean。豆子:回购,回购

这只是检查的一个问题。编译和运行我们的应用程序可以很好地工作,但是为了使IJ中的检查可用,这是一个大问题。有人对如何让IntelliJ表现有什么建议吗


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

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

结果是,我有两个上下文在spring
applicationContext.xml
中两次拾取相同的类:


...

删除这两行中的任何一行都解决了问题。

IntelliJ是否会告诉您它认为哪些bean与注入匹配?另一方面,您不需要
@Repository
注释。如果配置正确,Spring Data JPA将自动创建bean是,@geoand,匹配的bean是
Repo
Repo
。不是最有用的。我能想到的唯一一件事是IJ同时获取了
@Repository
注释和spring配置?这是可能的。如果你认为这确实是IntelliJ的问题,你也应该向他们报告。我不认为这样问有什么不对,但如果IntelliJ意识到这个问题,它可以在未来的版本中得到适当的解决。事实证明,这几乎就是正在发生的事情。我们使用了
@Repository
注释以及基于Java的配置,该配置还手动初始化了所有存储库,因此IJ认为有两个相同的bean。但是,由于我们没有将Spring配置为查找
@Repository
注释,而只是在运行应用程序时使用了手动配置,因此没有造成问题。删除
@Repository
注释成功了,而且是正确的,因为我们没有使用它。我遇到的一个问题是,如果我使用Spring Boot,当前IntelliJ v 15错误地抱怨它无法自动连接任何Spring数据存储库(如Crudepository),因此添加@Repository修复了这一问题。然而,如果您不使用Spring Boot,这会导致一个错误(我有一个使用标准Spring应用程序和Spring Boot的共享Dao库的项目!-修复了一个又一个的错误)。然而,没有运行时错误,所有的工作都如预期的那样
@Repository
public interface <Name>Repository implements JpaRepository<Name, Long> {
    // …
}
@Inject
public void set<Name>Repository(<Name>Repository <name>Repo) {
    this.<name>Repo = <name>Repo;
}

private <Name>Repository <name>Repo;