@Query MongoDb с динамическими параметрами Spring

117
20 мая 2021, 18:20

Необходимо выбрать записи из MongoDB, где dataEdit >= параметра, передаваемого пользователем в запросе. Делаю следующим образом:

public interface OffersRepository extends MongoRepository<Offers, String> {
    @Query("{ 'dateEdit' : { $eq: ?0, $gt: ?0 } }")
    List<Offers> findBydateEdit(String dateEdit);
    Offers findBy_id(String _id);
}

И потом вызываю:

@Autowired
private OffersRepository offersRepository;
@RequestMapping(value = "/{time}", method = RequestMethod.GET)
public List<Offers> getOffersBydateEdit(@PathVariable ("time") String time) throws ParseException {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = null;
    date = format.parse(time);
    return offersRepository.findBydateEdit(format.format(date));
}

Возвращает следующим результат: []

Если не использовать данный метод, а просто отфильтровать самому, то результат будет совершенно другой, он вернет подходящие мне записи. Код следующий:

@Autowired
private OffersRepository offersRepository;
@RequestMapping(value = "/{time}", method = RequestMethod.GET)
public ArrayList<Offers> getOffersBydateEdit(@PathVariable ("time") String time) throws ParseException {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = null;
    date = format.parse(time);
    format.format(date);
    List<Offers> ret = offersRepository.findAll();
    ArrayList<Offers> ret1 = new ArrayList<>();
    for (Offers offer : ret) {
        String s = offer.getDateEdit();
        Date data = format.parse(s);
        if (data.after(date) || data.equals(date)) {
            ret1.add(offer);
        }
    }
    return ret1;
}

Что я делаю не так при использовании @Query? Информацию по Query брал отсюда: https://www.baeldung.com/queries-in-spring-data-mongodb Также сделал проверку запроса в Robo3T и подсчитал количество подходящих мне записей:

READ ALSO
Как вывести все варианты перестановки пар цифр числа long?

Как вывести все варианты перестановки пар цифр числа long?

Имеется некое число long Как можно было бы вывести все варианты перестановки пар цифр этого числа?

152
Java, RLE-распаковка

Java, RLE-распаковка

по правилам сжатия последовательность aaaabcc должна преобразоваться в 4ab2c (число показывает сколько повторяющихся символов, если символ один,...

80
String выход за пределы

String выход за пределы

Вопрос: Как создать проверку на выход за пределы длины строки?

82
Java сверка числа с фрагментом

Java сверка числа с фрагментом

имеется массив чисел

114