Я работал над примером проекта можно найти здесь .
Эту проблему сложно объяснить, но, похоже, она проистекает из исходного приложения beer-billing
.
Используя проверенный мною клиент командной строки, запись определенно существует в базе данных:
> use beerbilling;
switched to db beerbilling
> show collections;
markup
> db.markup.find();
{ "_id" : ObjectId("5bb395965c9052b3987730d3"), "bottleMarkup" : 5, "name" : "defaultMarkup", "pintMarkup" : 5 }
>
Первая необычная вещь, которую я заметил, это этот сегмент .найденный в beer-billing/src/main/java/init/BootStrap.java
Maybe<BeerMarkup> currentBeer = Flowable.fromPublisher(getCosts().find(eq("name","defaultMarkup"))
.limit(1)).firstElement();
BeerMarkup beerCost = new BeerMarkup("defaultMarkup",5.00d,5.00d);
currentBeer.switchIfEmpty(
Single.fromPublisher(getCosts().insertOne(beerCost))
.map(success -> beerCost)
).subscribe(s-> System.out.println("RESULTS -------------------------------------------------------->>"+s));
BeerMarkup stock = currentBeer.blockingGet();
System.out.println("MARKUP--------------------------------------------------------- :::::::: "+stock.getBottleMarkup()+" "+stock.getName()+" "+stock.getPintMarkup());
Кажется, он отображает пустые результаты, я попытался изменить вывод, чтобы переопределить формат json в классе BeerMarkup и вывести метод по умолчанию toString, который по-прежнему отображался как null какимя и 0 в качестве двух значений:
0.0 null 0.0
Еще одна сложная проблема - еще ниже в приложении beer-stock
, которое использует клиент для подключения к нему и имеет тот же вывод,Я изменил BeerMarkup
на Markup
, чтобы сделать его более четким для текущей проблемы и источника проблемы и т. Д.
Вам потребуется загрузить весь проект и попытаться запустить все экземпляры, затем нажатьURL-адрес на переднем конце и попробуйте ссылку stocks
, чтобы увидеть это на бэкенде:
MARKUP>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> class micronaut.demo.beer.model.Markup 0.0 null 0.0
Не совсем уверен, что было упущено, так как mongodb в beer-stock
работает отлично и использует тот жеспособ создания записей в его BootStrap.
Я потратил некоторое время на него и не вижу, что было пропущено