используйте List.indexOf (). Если список слишком велик, сделайте список «очень ленивым».
Но зачем вам индекс? Возможно, вы на самом деле этого не делаете (и, следовательно, вам не нужно будет решать эту проблему)
Исправленный ответ:
Вы делаете это совершенно неправильно. Все, что вам нужно, это:
выберите количество (*) для собаки d, собаки d1, где d.age <= d1.age и d1.id =: entityId и d1.id <> d.id
Почему это работает:
Этот запрос находит каждую собаку того же возраста или моложе, чем рассматриваемая собака (d1), но она не d1. (но фактически не возвращает всех этих собак - так как мы не заботимся о них).
Количество подсчитывает количество собак "до" d1. Таким образом, вы можете сказать, где d1 появляется в полном списке собак. Поскольку вам не нужно знать положение всех собак в списке, вам не нужно извлекать всех собак.