¿Qué son las consultas nativas?
Las consultas nativas son consultas expresadas a través del lenguaje de consulta estructurado (SQL) y son métodos concisos y seguros de tipo de expresión de consulta C ++ y Java. El uso de consultas nativas es beneficioso en la utilización de características específicas en bases de datos, incluidas sugerencias de consulta y ciertas características específicas de la base de datos. También son útiles para proporcionar rutas de migración limpias directamente desde aplicaciones que utilizan SQL o Java Database Connectivity (JDBC ™). Las consultas nativas se utilizan para proporcionar resultados que consisten en valores escalares, entidades o ambos. Estos tipos de consultas admiten el uso de SQL nativo en una base de datos de destino.
Estos tipos de consultas pueden superar las deficiencias de una interfaz de programación de aplicaciones (API) basada en cadenas. Las consultas de este tipo se utilizan en una base de datos de objetos, donde la persistencia de los objetos es una tarea común para los programadores y una característica común de la base de datos. Sin embargo, las consultas no nativas parecen extrañas en programas orientados a objetos debido a que sus expresiones son cadenas simples y gráficos de objetos que contienen cadenas intercaladas.
Las consultas nativas ayudan a aliviar los problemas que enfrentan las bases de datos al expresar una consulta en Java y C ++. Las consultas se pueden escribir sin una API o un lenguaje de consulta personalizado. Además, un entorno de desarrollo integrado (IDE) puede ayudar a reducir los errores tipográficos. Las consultas nativas serían seguras para escribir al máximo y se podría acceder mediante las características de refactorización de un IDE. Finalmente, las consultas se pueden ejecutar, probar y crear prototipos en colecciones de memoria sin el back-end de una base de datos.
Las consultas, y su SQL acompañante, no son necesariamente transferibles a través de otras bases de datos. Tras el retorno de muchas entidades por una consulta nativa particular, estas mismas entidades deben especificarse, así como mapearse, a los resultados de la columna en las declaraciones SQL en un programa de software de mapeo de definición de metadatos. Como resultado, estos se pueden usar para asignar resultados JDBC mediante tiempo de ejecución persistente en los objetos esperados. El uso de parámetros de nombre nunca se define para este tipo de consultas y las aplicaciones portátiles solo pueden usar el enlace de parámetros posicionales para consultas SQL nativas. El soporte de combinaciones se limita a las relaciones de valores individuales.
Para usar consultas nativas, un programador debe describir un conjunto de resultados SQL. La descripción del conjunto de resultados ayuda a un programa como Entitymanager a asignar columnas a las propiedades de las entidades. Los resultados escalares también se pueden definir y mezclar con los resultados de otras entidades, lo que resulta en el retorno de una columna de alias. Una vez que se describen los conjuntos de resultados, es posible la ejecución de consultas nativas.