Настройка базовых пакетов для сканирования в spring-data-mongodb - PullRequest
0 голосов
/ 27 января 2020

Я использую весеннюю загрузку 2.0.6.RELEASE в моем многомодульном проекте. В модуле общего модуля у меня есть документ бота

package com.entity;

@Document(collection = "bot")
public class Bot{
  @Id
  protected String id;
  protected String name;
  //getters and setters
}

В первом модуле другого модуля у меня есть

package com.first.entity;

@Document(collection = "bot")
@TypeAlias("FirstBotType")
public class FirstBot extends Bot {
  private String fieldInFirstBot;
  //getter and setter
}

В мастер-модуле у меня есть зависимости от обоих модулей и запуска приложения:

package com.bots;

@SpringBootApplication(scanBasePackages = "com")
@EnableMongoRepositories(basePackages = "com")
public class Launcher {

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

}

Также у меня есть репозиторий:

public interface BotRepository extends MongoRepository<Bot, String> { }

Когда я запрашиваю repository.findAll(), он возвращает список, который содержит только Bot экземпляров вместо FirstBot. Я могу исправить это, предоставив компонент, который расширяет AbstractMongoConfiguration, реализует все методы и переопределяет getMappingBasePackages():

@Override
protected Collection<String> getMappingBasePackages() {
  return Arrays.asList("com.entity", "com.first.entity");
}

Есть ли способ избежать создания компонента AbstractMongoConfiguration вручную и сказать весенней загрузке: проверять пакеты, которые мне нужны?

Обновление: я добавил @EntityScan("com") аннотацию, но ничего не изменилось

...