Spring mongodb compass отсутствует созданных данных / коллекций - PullRequest
1 голос
/ 09 марта 2020

Сохраняю свои данные в базу данных, используя spring.

   @RepositoryRestResource(collectionResourceRel = "operators", path = "operators")
public interface OperatorsRepository extends MongoRepository<Operator, String> {
}

и у меня есть файл:

main \ resources \ application.properties

spring.data.mongodb.uri=mongodb://admin:password@myclusterurl/test?retryWrites=true&w=majority

В моем классе конфигурации я использую:

@Bean
CommandLineRunner commandLineRunner(OperatorsRepository operatorsRepository){operatorsRepository.save(myobjToSave);}

Все отлично работает, я получаю данные, сохраненные с помощью REST. Но моя проблема в том, что в compass mongodb я не вижу созданных коллекций и данных. Почему? Использование оболочки mon go и атласа mon go одинаково.

1 Ответ

0 голосов
/ 09 марта 2020

Объявление бина не означает, что оно выполняется автоматически. Если вы хотите создать новую коллекцию из, скажем, файла JSON из src/main/resources (или test), то вам нужно как-то инициировать вызов этого метода.

Я предлагаю использовать @PostConstruct аннотацию, которая срабатывает один раз при создании объекта. Поскольку вы хотите создавать данные, используя OperatorsRepository, я бы использовал их в классе @Service, внедряющем этот объект:

@PostConstruct
void createData() {
    this.operatorsRepository.save(myobjToSave);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...