Spring Data JPA. Comment obtenir uniquement une liste d'ID de la méthode findAll ()

J'ai un très compliquée modèle. L'entité a beaucoup de relations et ainsi de suite.

J'essaie d'utiliser Spring Data JPA, et j'ai préparé un référentiel.

mais quand j'invoque un metod findAll() avec la spécification de l'objet a qui ont un problème de performances, car les objets sont très grands. Je le sais parce que quand j'invoque une méthode comme ceci:

@Query(value = "select id, name from Customer ")
List<Object[]> myFindCustomerIds();

Je n'ai pas de problèmes avec la performance.

Mais quand j'invoque

List<Customer> findAll(); 

J'ai eu un gros problème avec la performance.

Le problème est que j'ai besoin d'invoquer la méthode findAll avec les Spécifications du Client, c'est pourquoi je ne peux pas utiliser la méthode qui renvoie une liste de tableaux d'objets.

Comment écrire une méthode à la recherche de tous les clients avec les spécifications du Client entité, mais qui ne renvoie qu'un IDs.

comme ceci:

List<Long> findAll(Specification<Customer> spec);
  • Je ne peux pas utiliser dans ce cas la pagination.

S'il vous plaît aider.

source d'informationauteur user6778654