Как сохранить список String в MongoDB с помощью Java / Springboot - PullRequest
0 голосов
/ 10 марта 2020

Итак, я хочу просто сохранить такой список в MongoDB.

[
    {
        "1": "byCharity"
    },
    {
        "2": "byProduct"
    }
]

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

public interface SearchTypeRepository extends MongoRepository<String,Integer> {

}

Класс контроллера

@RestController
@RequestMapping("/SearchType")
public class SearchTypeController {
    @Autowired
    private SearchTypeRepository searchTypeRepository;

    @PostMapping("/AddSearchType")
    public String addSearchType(@QueryParam("searchType") String searchType) {
        searchTypeRepository.save(searchType);
        return searchType;
    }

    @GetMapping("/GetSearchTypes")
    public List getSearchTypes() {
        return searchTypeRepository.findAll();
    }

}

Однако, когда при создании экземпляра класса я получаю ошибку нравится.

Error creating bean with name 'searchTypeController': Unsatisfied dependency expressed through field 'searchTypeRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searchTypeRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.MappingException: Couldn't find PersistentEntity for type class java.lang.String!

Любая помощь будет принята с благодарностью

1 Ответ

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

Вы можете сохранить этот тип json в MongoDB, выполнив следующие шаги:

Создайте POJO следующим образом:

public class MyPojo {

private List<Map<String, String>> message;

//Getters
//Setters
}

Добавьте ваши объекты на карту

Примечание. Каждый раз создавайте новый экземпляр Map для хранения объекта на карте.

Измените хранилище

public interface SearchTypeRepository extends MongoRepository<String,Integer> {}

на

public interface SearchTypeRepository extends MongoRepository<String,MyPojo> {}

и выполните операцию сохранения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...