Компиляция микросервиса, модуля и ошибок: точка внедрения имеет следующие аннотации:

Я весь день пытался понять, но не могу понять свою проблему.

У меня есть 1 весенний модуль (https://spring.io/guides/gs/multi-module/) [у меня также есть JPA в подмодуле] и 2 микросервиса (A и B).

В микросервисе A я попадаю в @Autowired CountryRepository (который простирается от JpaRepository) и который работает очень хорошо, SpringBootApplication (scanBasePackages = "**"), я получаю доступ к своим данным и могу компилировать.

На микросервисе B я сделал то же самое, мне удалось получить доступ к своим данным, но их невозможно скомпилировать:

****************************
FAILED TO START APPLICATION
****************************

Description:

Field countryRepository in * required a bean named 'entityManagerFactory' that could not be found.

The injection point has the following annotations:
        - @ org.springframework.beans.factory.annotation.Autowired (required = true)


Action:

Consider defining a bean named 'entityManagerFactory' in your configuration.

Не могу понять или найти ошибку, как себя разблокировать, ищу снова и снова, но не могу понять, почему микросервис Б не хочет компилироваться.

Я использую POM Parent, и я осторожно разместил следующий порядок:

<modules>
<module>sub module </module>
<module> microservice A </module>
<module> microservice B </module>
</modules>

Поэтому я взламываю, не слишком разбираясь, и иногда у меня разные сообщения, но всегда компиляция, которая не работает

Конкретно, можно ли использовать репозитории подмодуля в микросервисах A и B?

Спасибо за внимание и помощь

2 ответа

Да, вы можете использовать репозитории подмодулей.

Вы должны использовать @EnableJpaRepository в своем основном классе и указать там имя базового пакета.

Вот и все, это поможет

Я просмотрел ваше репо и обнаружил, что кое-чего не хватает

В вашем классе CountryRepository.java

@Repository 
public interface CountryRepository extends JpaRepository<Country, Long> {
}

Аннотации @Repository отсутствует, вам нужно добавить это

Затем в вашем основном классе обслуживания A и услуге B вы должны добавить, как показано ниже

@SpringBootApplication
@EnableJpaRepository("com.submodule.commun.modelandjpa.Repository")
public class ParentApplication {

public static void main(String[] args) {
    SpringApplication.run(ParentApplication.class, args);
}

}

Вот и все..

Другие вопросы по тегам