2017-10-16 18 views
1

J'ai utilisé cette tutorial/guide pour créer des requêtes générées automatiquement pour une base de données Mongo. Tout sauf l'une des méthodes que j'ai créées ont travaillé et je me demande si quelqu'un pouvait me donner des commentaires sur ce que je fais mal avec cette méthode:Requête de données Spring auto-générée pour MongoDB: X entrées les plus récentes

List<DcrExecution> findDcrExecutionsByLimitOrderByExecutionTimeDesc(int num); 

Pour l'instant, je voudrais éviter de créer ma propre commande méthode. Cependant, si c'est la seule option, je vais m'y pencher. Je veux trouver le X dcrExecutions le plus récent avec X étant une valeur que l'utilisateur choisit. Donc, je suis nouveau au printemps, et je ne suis pas sûr de l'ordre dans lequel placer les commandes dans la méthode afin que Spring puisse générer une méthode de requête. J'ai essayé quelques autres variantes de la signature de la méthode, par exemple:

List<DcrExecution> findDcrExecutionsOrderByExecutionTimeDescLimitBy(int num); 

mais cela a créé l'erreur:

No property descLimitBy found for type Date!

qui est loin d'ce que je voulais atteindre. Je voudrais créer une méthode qui trouvera les X entrées les plus récentes dans la base de données Mongo. Les commander par ordre les ordonne par date puis desc me donnera les entrées les plus récentes en premier. La limite ou la limite ne récupère que le nombre maximum d'entrées spécifié par le paramètre num. C'est mon processus de pensée, de toute façon. Toute aide est la bienvenue!

Voici la classe complète d'interface:

public interface DcrExecutionRepo extends MongoRepository<DcrExecution, String> { 
    List<DcrExecution> findDcrExecutionsByExecutionTimeAfter(Date date); 

    //TODO: Fix 
    //List<DcrExecution> findDcrExecutionsByLimitOrderByExecutionTimeDesc(int num); 

    List<DcrExecution> findDcrExecutionsByFinishedIsFalse(); 
+1

Quelque chose comme 'Liste findFirst10ByExecutionTime (date de date, Trier tri); 'ou' List findFirst10ByExecutionTimeDesc (date date); ' – Veeram

+0

Je suppose que si je ne peux pas obtenir le premier nombre X d'entrées, je pourrais créer quelques méthodes comme vous avez ci-dessus avec 5, 10, 15, etc. Merci pour les solutions suggérées! –

Répondre