Nel nostro codice abbiamo un numero di repository JPA di Spring, uno per ciascuna delle nostre classi di modelli. Essi sono definiti come (dove <Name>
è il nome della nostra classe modale):IntelliJ "Impossibile eseguire l'autowire." ispezione, "[...] più di un bean" per i repository JPA di Spring
@Repository
public interface <Name>Repository implements JpaRepository<Name, Long> {
// …
}
Noi li inietta nei nostri fagioli utilizzando il @Inject
annotazione dal javax
:
@Inject
public void set<Name>Repository(<Name>Repository <name>Repo) {
this.<name>Repo = <name>Repo;
}
private <Name>Repository <name>Repo;
Il problema è che IntelliJ sottolinea la <name>Repo
nella funzione set<Name>Repository
come un errore con il testo:
Impossibile autowire. Vi è più di un bean di tipo "Repository". Fagioli: Repo, Repo.
Questo è solo un problema con l'ispezione. La compilazione e l'esecuzione della nostra app funzionano bene, ma nello sforzo di rendere utilizzabili le ispezioni in IJ questo è un grosso problema. Qualcuno ha suggerimenti su come convincere IntelliJ a comportarsi?
Per riferimento, stiamo utilizzando Hibernate come provider JPA e l'origine dati è configurata nelle finestre degli strumenti Database e Persistenza.
IntelliJ vi dice quali bean ritiene che corrispondano all'iniezione? – geoand
Anche su una nota diversa, non è necessario l'annotazione '@ Repository'. Spring Data JPA creerà il bean automaticamente se è configurato correttamente – geoand
Sì, @geo, i bean corrispondenti sono ' Repo' e' Repo'. Non il più utile. L'unica cosa che ho potuto pensare è che IJ ha raccolto sia l'annotazione '@ Repository', sia la configurazione di primavera? –