Spring boot, mongo DB, как сравнить значение столбца для больше 0 - PullRequest
0 голосов
/ 18 мая 2018

Приложение находится в режиме весенней загрузки и моноблока.

Я хотел бы найти для всех записей, где приз больше 0 и некоторые другие критерии.

Я пробовал что-то вродеthis,

   @Query("{'prize' : {$gt : ?0 }, 'logDate' : {$lt : ?1} , 'api' : ?2 , 'service' : ?3}")
    List<SomeLog> findByLogDateBeforeAndApiAndService(double prizeZero,Date endDateAndTime, ApiName apiName, String service);

Где я явно отправляю призZero в качестве параметра как 0.0.и сравнивая с призом.Это прекрасно работает.

Но я ищу, как можно избежать параметра призZero и сравнивать приз непосредственно в запросе, как мы делаем в простом SQL, как prize > 0

пробовал с,

  @Query("{'prize' : {$gt : 0 }, 'logDate' : {$lt : ?1} , 'api' : ?2 , 'service' : ?3}")
    List<SomeLog> findByLogDateBeforeAndApiAndService(Date endDateAndTime, ApiName apiName, String service);

Но выдает ошибку как,

Неверный индекс параметра!Похоже, вы объявили слишком мало параметров метода запроса!

Может кто-нибудь подсказать, как мне это сделать.

1 Ответ

0 голосов
/ 19 мая 2018

Ну, вы используете "? 3", который предполагает, что есть 4 параметра, но у вас есть только 3. Возможно, попробуйте -1 для всех ваших позиций параметров в вашей строке: @Query("{'prize' : {$gt : 0 }, 'logDate' : {$lt : ?0} , 'api' : ?1 , 'service' : ?2}")

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