2013-09-30 3 views
0

L'annotation @Query dans le package org.springframework.data.neo4j.annotation fournit certains attributs de comptage, tels que countQuery et countQueryName.données de printemps neo4j @Query countQuery

/** 
* @return simpler count-query to be executed for @{see Pageable}-support {self} will be provided by the node-id of the current entity other parameters (e.g. {name}) by the given named params 
*/ 
String countQuery() default ""; 

/** 
* @return name of the named count query to be used for this annotated method, instead of Class.method.count 
*/ 
String countQueryName() default ""; 

Quelqu'un peut-il expliquer l'utilisation de ceux-ci? Pour être plus précis, j'ai écrit une requête pour aller chercher les articles sur un sujet. Les résultats de la requête seront paginés. La requête ci-dessous fonctionne bien et me donne le résultat.

@Query("start post=node:__types__(className='com.xxx.entity.Post'), topic=node({0}) match post-[:TOPIC_POST]-topic return post") 
Page<Post> getPostsByTopic(Topic topic, Pageable page); 

Maintenant, je veux aussi le nombre total de résultats et, dois-je écrire une autre requête pour cela ou est-il possible de tenir compte dans ce nombre requête?

Répondre

0

Je pense que countQuery devrait travailler pour vous, mais vous avez encore besoin d'écrire le nombre requête

S'il est nécessaire que les résultats paginés renvoient le nombre total correct, l'annotation @Query peut être fourni avec un nombre de requêtes dans l'attribut countQuery . Cette requête est exécutée séparément après la requête de résultat et son résultat est utilisé pour remplir la propriété totalCount de la page renvoyée.

http://docs.spring.io/spring-data/neo4j/docs/current/reference/htmlsingle/#d0e2712

+0

Ok, je vais vous donner que l'essayer. Une idée de comment countQueryName/queryName est-il utilisé? –

+0

Les deux sont des références à des requêtes externes stockées dans un fichier de propriétés. Voir la section 20.8.4 dans le lien que j'ai posté pour plus d'informations. – PhilBa

+0

Merci, cela a fonctionné. J'avais lu la documentation plus tôt, mais j'ai raté cette partie. –

Questions connexes