web-dev-qa-db-ja.com

自動配線できませんでした。 「リポジトリ」タイプのBeanが見つかりません

私はSpring Data Jpaを使用しています、これは私のプロジェクト構造です:

App
  ConfigPackage
    MyConfig
  ServicePackage
    MyService
  RepositoryPackage
    MyRepository

これがMyRepositoryです:

public interface MyRepository extends JpaRepository<MyEntity, Long> {
}

これがMyServiceです:

@Service
public class MyService {

    @Autowired
    private MyRepository myRepository; <---here

    ...
}

これがMyConfigです:

@Configuration
@EnableJpaRepositories(
        basePackages = "RepositoryPackage",
        entityManagerFactoryRef = "xxx",
        transactionManagerRef = "xxx"
)
public class MyConfig {
}

私が使う @AutowiredMyRepositoryMyServiceに注入しますが、IntelliJは常に不平を言います

自動配線できませんでした。 「MyRepository」タイプのBeanが見つかりません

コードが正常にコンパイルおよび実行できたとしても。

IntelliJがこれがエラーではないことを認識できないのはなぜですか? IntelliJの警告を削除する方法

IntelliJバージョン:2018.2.6

4
xingbin

それを試してみてください :

@Configuration
@ComponentScan(basePackages = {"your repository package}")
0
squalltrt

次のいずれかを宣言できます。

@SuppressWarnings("SpringJavaAutowiringInspection")

フィールドで、またはIntellijのコードインスペクションを通じて警告を抑制します(赤い電球をクリックすると、フィールドまたはクラス全体のいずれかで「Beanクラスの自動配線」を抑制できます。

0

データベース構成で、ベースパッケージを宣言する必要があります。

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
        entityManagerFactoryRef = "postgreEntityManager",
        transactionManagerRef = "postgreTransactionManager",
        basePackages = "fr.lab.test.dao"
)
public class PostGreDBConfig {
0
L. Quastana

私は同じ問題を一度経験しましたが、プロジェクトの構造を変更し、MyRepositoryをサービスがあるのと同じパッケージに移動します。これは動作するはずです。なぜ起こるのかわかりません。

0
Shubham