Zapytanie z sort () i limit () w interfejsie Spring Repository

Jestem nowym użytkownikiem Spring Data z MongoDB i chciałbym mieć automatycznie generowaną metodę zapytania wewnątrz mojego interfejsu rozszerzenia MongoRepository, która wymaga filtrowania, sortowania i ograniczania.

Zapytanie wygląda tak:

<code>// 'created' is the field I need to sort against

find({state:'ACTIVE'}).sort({created:-1}).limit(1)
</code>

Interfejs repozytorium wygląda tak:

<code>public interface JobRepository extends MongoRepository<Job, String> {
    @Query("{ state: 'ACTIVE', userId: ?0 }")
    List<Job> findActiveByUserId(String userId);

    // The next line is the problem, it wont work since
    // it's not in the format @Query expects
    @Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)")
    Job findOneActiveOldest();

    ...
}
</code>

Wiem, że można dodać argument Sort do metody kwerendy, aby uzyskać sortowanie, ale problemem jest ograniczenie wyników tylko do jednego obiektu. Czy jest to możliwe bez konieczności pisania niestandardowego JobRepositoryImpl?

Dzięki

Edytować:

Przykład tego, czego szukam:

<code>@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }")
Job findOneActiveOldest();
</code>

lub

<code>@Query("{ state:'ACTIVE' }")
@Sort("{ created:-1 }")
@Limit(1)
Job findOneActiveOldest();
</code>

Ale to oczywiście nie działa :(

questionAnswers(2)

yourAnswerToTheQuestion