该应用程序处于spring boot和mongo db。
我想找到所有记录,其中奖品大于0和其他一些标准。
我试过这样的事情,
@Query("{'prize' : {$gt : ?0 }, 'logDate' : {$lt : ?1} , 'api' : ?2 , 'service' : ?3}")
List<SomeLog> findByLogDateBeforeAndApiAndService(double prizeZero,Date endDateAndTime, ApiName apiName, String service);
我明确将prizeZero作为参数发送为0.0。和奖品比较。它工作正常。
但我正在寻找,如何避免使用prizeZero参数,并直接在查询中比较奖品,就像我们在纯SQL中那样prize > 0
试过,
@Query("{'prize' : {$gt : 0 }, 'logDate' : {$lt : ?1} , 'api' : ?2 , 'service' : ?3}")
List<SomeLog> findByLogDateBeforeAndApiAndService(Date endDateAndTime, ApiName apiName, String service);
但它给出了一个错误,
参数索引无效!您似乎已经声明了太少的查询方法参数!
有人可以建议我该怎么做。
答案 0 :(得分:1)
嗯,你正在使用&#34;?3&#34;这表明有4个参数,但你只有3.也许尝试-1你的字符串中的所有参数位置:
@Query("{'prize' : {$gt : 0 }, 'logDate' : {$lt : ?0} , 'api' : ?1 , 'service' : ?2}")