Maison >Java >javaDidacticiel >Comment puis-je exécuter des requêtes SQL brutes avec les référentiels de données Spring ?
Exécution de requêtes SQL brutes avec Spring Data Repositories
Bien que l'annotation @Query dans Spring Data Repositories utilise généralement des requêtes basées sur des entités, elle est possible d'exécuter des requêtes SQL brutes à l'aide de l'indicateur nativeQuery. Définir cet indicateur sur true permet l'exécution directe de SQL au sein d'une méthode de référentiel.
<code class="java">@Query(value = "SELECT * FROM table_name", nativeQuery = true) List<Object[]> executeNativeQuery();</code>
Dans cet exemple, l'indicateur nativeQuery est défini sur true dans l'annotation @Query. Cela permet à la requête d'exécuter du SQL natif, renvoyant les résultats sous forme de tableau Object[][].
Alternativement, Spring Data JPA prend également en charge les requêtes natives nommées. Cette approche vous permet de définir des requêtes natives dans un fichier de ressources (tel qu'un fichier *.sql) et de les référencer à l'aide d'une annotation de requête nommée. Par exemple :
<code class="java">@NamedNativeQuery(name = "findByName", query = "SELECT * FROM table_name WHERE name = :name") interface UserRepository { @Query("findByName") List<User> findByName(@Param("name") String name); }</code>
Dans cet exemple, la méthode findByName utilise une requête native nommée pour rechercher des utilisateurs en fonction de leur nom. La requête nommée est définie dans un fichier *.sql comme suit :
<code class="sql">SELECT * FROM table_name WHERE name = :name;</code>
En utilisant l'indicateur nativeQuery ou des requêtes natives nommées, il devient possible d'incorporer des requêtes SQL brutes dans les référentiels de données Spring, offrant ainsi une flexibilité pour effectuer diverses opérations de base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!