Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je exécuter des requêtes SQL brutes avec les référentiels de données Spring ?

Mary-Kate Olsen
Libérer: 2024-11-02 02:57:02
original
387 Les gens l'ont consulté

How Can I Execute Raw SQL Queries with Spring Data Repositories?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal