J'ai besoin de conseils pour implémenter la requête Spring JPA. Ma requête est complexe, en raison de la longueur d'entrée.
En entrée, j'ai:
Je sais que cela peut être résolu en utilisant PagingAndSortingRepository standard comme:
Page<A> findAllByParam1AndParam2AndParam3Between...(@Nullable String param1, @Nullable String param2, @Nullable Integer param3,...)
mais en regardant combien de temps mon entrée est cette solution ne semble pas claire et je ne pense pas que cette méthode avec autant de paramètres soit une bonne solution. Je pensais également à findAll
par Example, mais cela prend en charge l'égalité, pas la condition entre.
D'autres options?
La seule solution consiste à créer une requête personnalisée avec CriteriaBuilder?
Vous avez ci-dessous les options pour le faire. 1) utilisez hql, car il est obligatoire d'avoir toutes les tables mappées en tant qu'entités jpa 2) est d'utiliser des requêtes natives, l'inconvénient ici est qu'il affecte la portabilité de l'application, mais si vous êtes sûr que votre application ne va pas migrer sur n'importe quelle autre base de données, alors vous pouvez utiliser ceci 3) est d'utiliser les critères de construction
Edit-> Trouvé notre que @Query peut être utilisé pour exécuter SQL et JPQL.
Veuillez suivre le lien ci-dessous pour plus d'informations
https://www.baeldung.com/spring-data-jpa-query
Utilisation de Query dans certains livres de certification de développeur de printemps également.
J'espère que cela pourra aider