Abfrage mit sort() und limit() in Spring-Repository-Schnittstelle

Ich bin neu in der Frühjahr-Daten mit MongoDB und möchte einen automatisch generierten query-Methode in meinem MongoRepository extension-Schnittstelle, die erfordert, filtern, Sortieren und begrenzen.

Die Abfrage sieht wie folgt aus:

//'created' is the field I need to sort against

find({state:'ACTIVE'}).sort({created:-1}).limit(1)

Repository-Schnittstelle sieht wie folgt aus:

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();

    ...
}

Ich weiß, dass man hinzufügen kann, eine Art argument, um eine query-Methode, um die Sortierung, sondern das problem ist die Begrenzung der Ergebnisse auf nur einem einzigen Objekt. Ist das möglich zu tun, ohne zu schreiben eine benutzerdefinierte JobRepositoryImpl?

Dank

Edit:

Beispiel für das, was ich Suche:

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

oder

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

Aber dies offensichtlich nicht funktioniert 🙁

InformationsquelleAutor m1h4 | 2012-04-08

Schreibe einen Kommentar