Que sont les requêtes natives?
Les requêtes natives sont des requêtes exprimées par le biais du langage SQL (Structured Query Language). Elles sont concises ainsi que des méthodes typ-safe d'expressions de requête C ++ et Java. L'utilisation de requêtes natives est avantageuse pour l'utilisation de fonctionnalités spécifiques dans des bases de données, notamment les indicateurs de requête et certaines fonctionnalités spécifiques à la base de données. Ils sont également utiles pour fournir des chemins de migration clairs directement à partir d'applications utilisant SQL ou JDBC (Java Database Connectivity). Les requêtes natives sont utilisées pour fournir des résultats consistant en des valeurs scalaires, des entités ou les deux. Ces types de requêtes prennent en charge l'utilisation de SQL natif sur une base de données cible.
Ces types de requêtes peuvent surmonter les inconvénients d'une interface de programmation d'application (API) basée sur des chaînes. Les requêtes de ce type sont utilisées dans une base de données d'objets, où la persistance des objets est une tâche courante pour les programmeurs et une fonctionnalité commune de la base de données. Cependant, les requêtes non natives apparaissent étrangères dans les programmes orientés objet, car leurs expressions sont de simples chaînes et les graphiques d'objet contenant des chaînes intercalées.
Les requêtes natives aident à résoudre les problèmes rencontrés dans les bases de données en exprimant une requête dans Java et C ++. Les requêtes peuvent être écrites sans API ni langage de requête personnalisé. De plus, un environnement de développement intégré (IDE) peut aider à réduire le nombre de fautes de frappe. Les requêtes natives seraient alors sécurisées au maximum et accessibles aux fonctionnalités de refactoring de l'EDI. Enfin, les requêtes peuvent être exécutées, testées et prototypées contre des collections de mémoire ordinaire sans le back-end d'une base de données.
Les requêtes et le code SQL qui les accompagne ne sont pas nécessairement transférables entre autres bases de données. Lors du retour de nombreuses entités par une requête native particulière, ces mêmes entités doivent être spécifiées, ainsi que mappées, aux résultats de colonne dans les instructions SQL dans un programme logiciel de mappage de définition de métadonnées. Par conséquent, ils peuvent être utilisés pour mapper les résultats JDBC par exécution persistante dans les objets attendus. L'utilisation du paramètre nom n'est jamais définie pour ces types de requêtes et les applications portables ne peuvent utiliser que la liaison de paramètres de position pour les requêtes SQL natives. La prise en charge des jointures est limitée aux relations de valeurs uniques.
Pour utiliser des requêtes natives, un programmeur doit décrire un ensemble de résultats SQL. La description du jeu de résultats aide un programme tel que Entitymanager à mapper les colonnes sur les propriétés des entités. Les résultats scalaires peuvent également être définis et mélangés avec d'autres résultats d'entité, ce qui entraîne le retour d'une colonne d'alias. Une fois les ensembles de résultats décrits, l'exécution de requêtes natives est possible.