O que são consultas nativas?
As consultas nativas são consultas expressas por meio da Structured Query Language (SQL) e são métodos concisos e seguros para tipos de expressão de consulta C ++ e Java. O uso de consultas nativas é benéfico na utilização de recursos específicos em bancos de dados, incluindo dicas de consulta e determinados recursos específicos do banco de dados. Eles também são úteis no fornecimento de caminhos limpos de migração diretamente de aplicativos usando SQL ou Java Database Connectivity (JDBC ™). As consultas nativas são usadas para fornecer resultados consistindo em valores escalares, entidades ou ambos. Esses tipos de consultas suportam o uso de SQL nativo em um banco de dados de destino.
Esses tipos de consultas podem superar as deficiências de uma interface de programação de aplicativos (API). Consultas desse tipo são usadas em um banco de dados de objetos, em que a persistência de objetos é uma tarefa comum para programadores e um recurso comum do banco de dados. As consultas não nativas, no entanto, parecem estranhas em programas orientados a objetos, devido a suas expressões serem cadeias simples e gráficos de objetos contendo cadeias intercaladas.
As consultas nativas ajudam a aliviar os problemas enfrentados nos bancos de dados, expressando uma consulta no Java e C ++. As consultas podem ser gravadas sem uma API ou uma linguagem de consulta personalizada. Além disso, um ambiente de desenvolvimento integrado (IDE) é capaz de ajudar na redução de erros de digitação. As consultas nativas seriam, então, protegidas ao máximo e poderem ser acessadas pelos recursos de refatoração de um IDE. Finalmente, as consultas podem ser executadas, testadas e prototipadas em coleções de memória simples sem o back-end de um banco de dados.
As consultas e o SQL correspondente não são necessariamente transferíveis entre outros bancos de dados. Após o retorno de muitas entidades por uma consulta nativa específica, essas mesmas entidades devem ser especificadas e mapeadas para resultados da coluna em instruções SQL em um programa de software de mapeamento de definição de metadados. Como resultado, eles podem ser usados para mapear resultados JDBC por tempo de execução persistente nos objetos esperados. O uso do parâmetro Name nunca é definido para esses tipos de consultas e aplicativos portáteis podem usar apenas a ligação de parâmetros posicionais para consultas SQL nativas. O suporte de junções é limitado a relacionamentos de valores únicos.
Para usar consultas nativas, um programador deve descrever um conjunto de resultados SQL. A descrição do conjunto de resultados ajuda um programa como o Entitymanager a mapear colunas nas propriedades das entidades. Os resultados escalares também podem ser definidos e misturados com outros resultados da entidade, resultando no retorno de uma coluna de alias. Depois que os conjuntos de resultados são descritos, a execução de consultas nativas é possível.