Inne wyniki zapytań po deploymencie

Odpowiedz Nowy wątek
2019-08-20 21:06
0

Mam jedną bazę danych postawioną na zewnętrznym serwerze (mongodb.com).
Łącze się do niej lokalnie z apki Springowej podczas developmentu jak i po deploymencie tej apki na Heroku.
Generalnie wszystko działa poza jednym zapytaniem.

   List<ProductDto> getDailyConsumption(String username, LocalDate date) {
        final List<ProductDto> result = new ArrayList<>();
        repository.getDailyConsumption(username, date).ifPresentOrElse(daily -> {
            System.out.println(username + " has daily consumption record for " + date);
            result.addAll(productFacade.getProducts().stream().filter(daily.getProducts()::contains).collect(Collectors.toList()));
        }, () -> {
            System.out.println(username + " has no daily consumption record for " + date);
        });
        return result;
    }

Po stronie repozytorium wygląda to tak

    @Override
    public Optional<DailyConsumptionDto> getDailyConsumption(String username, LocalDate date) {
        return Optional.ofNullable(mongoTemplate.findOne(queryFactory.usernameDateQuery(username, date), DailyConsumptionEntity.class))
                .map(result -> converter.toDto(result, username));
    }

    @Override
    public List<ProductDto> getProducts() {
        return mongoTemplate.findAll(ProductEntity.class).stream().map(converter::toDto).collect(Collectors.toList());
    }
 Query usernameDateQuery(String username, LocalDate date) {
        var query = new Query(Criteria.where(USERNAME).is(username).and(DATE).is(date));
        System.out.println(query);
        return query;
    }

sout na potrzeby Heroku gdzie mam skonfigurowanego loggera, w każdym razie zarówno przy strzale na localhoscie jak i na heroku dostaje coś takiego
screenshot-20190820210302.png
screenshot-20190820210318.png

No i tutaj pojawia się mój problem, na localhoscie to zapytanie zwraca mi to czego szukam, a na Heroku już nie - rezultat wykonania tej operacji jest pusty. Pytanie tylko jak to możliwe, skoro w jednym i drugim miejscu baza danych jest taka sama?

edytowany 3x, ostatnio: ŁF, 2019-08-21 09:54
Sorry teraz doczytałem, że wszystko działa oprócz jednego zapytania. - podroznik 2019-08-22 21:09

Pozostało 580 znaków

2019-08-23 08:49
0

Wiesz co ja mam podejrzenie że używanie javowego obiektu do query może mieszać. Mieliśmy w projekcie kiedyś podobny problem używaliśmy obiekt składającego się z dwóch pól do szukania i ktoś kiedyś zmienił kolejność pól tego obiektu i query przestało działać a miało to związek z bsonem który mongo sobie tworzy. Spróbuj w ramach debugu użyć nie javovwego obiektu np. timestamp czy coś.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0