Проблемы с добавлением репозитория при включенном data-jpa dep - PullRequest
1 голос
/ 20 октября 2019

Я заметил, как только я откомментировал JPA dep, см. Ниже:

implementation("org.springframework.boot:spring-boot-starter-jdbc")
implementation ("org.springframework.boot:spring-boot-starter-data-jdbc")
//implementation ("org.springframework.boot:spring-boot-starter-data-jpa")

Я получил ошибку при запуске:

The bean 'myRepository', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.

На самом деле я получил эту ошибку длявсе мои репозитории при запуске, случайно он просто не запускается при первом, не может запускаться и останавливаться. Т.е. нет никакого риска, что я действительно сделаю несколько дубликатов в репозиториях.

Я использую: id 'org.springframework.boot' version '2.2.0.RELEASE' версия

Я сделал gradlew clean build проекта, чтобы убедиться, что у меня нет никакихостаток.

Мой класс хранилища:

public interface MyRepository extends CrudRepository<MyModel, UUID> {

    @Query(rowMapperClass = MyModelRowMapper.class, value = "select my_uuid, my_code from my_model_table")
    Iterable<MyModel> findMyStuff();
}

где MyModel

public class MyModel {

    @Id
    private UUID id;
    private String code; ...

Все работает, если я прокомментирую spring-boot-starter-data-jpa.

Интересно, если есть ошибка или я все еще пропустил что-то для установки .

Я получил

@Configuration
@EnableJdbcRepositories
public class RepositoryConfig {
}

, сидящий в той же упаковке, что и все репозитории.

И в конце концов, это работает, если я не включаю jpa. В моем коде пока нет специального кода JPA.

1 Ответ

1 голос
/ 21 октября 2019

Необходимо убедиться, что различные репозитории обрабатываются только правильным модулем Spring Data, перемещая их и соответствующую аннотацию @EnableXXXRepositories в отдельные пакеты или предоставляя соответствующие фильтры для аннотации.

В противном случае Spring Data попытается создать репозитории неправильного вида, которые затем не удастся, например, из-за того, что соответствующая аннотация @Id не найдена.

...