Cosa sono le query native?

Le query native sono query espresse tramite Structured Query Language (SQL) e sono metodi concisi e indipendenti dai tipi di espressioni di query C++ e Java. L’uso di query native è vantaggioso nell’utilizzo di funzionalità specifiche nei database, inclusi i suggerimenti per le query e alcune funzionalità specifiche del database. Sono anche utili per fornire percorsi di migrazione puliti direttamente dalle applicazioni che utilizzano SQL o Java Database Connectivity (JDBC™). Le query native vengono utilizzate per fornire risultati costituiti da valori scalari, entità o entrambi. Questi tipi di query supportano l’utilizzo di SQL nativo su un database di destinazione.

Questi tipi di query possono superare le carenze di un’interfaccia di programmazione dell’applicazione basata su stringhe (API). Le query di questo tipo vengono utilizzate in un database di oggetti, dove la persistenza degli oggetti è un’attività comune per i programmatori e una caratteristica comune del database. Le query non native, tuttavia, appaiono estranee nei programmi orientati agli oggetti poiché le loro espressioni sono semplici stringhe e grafici di oggetti contenenti stringhe intercalate.

Le query native aiutano ad alleviare i problemi affrontati nei database esprimendo una query all’interno di Java e C++. Le query possono essere scritte senza un’API o un linguaggio di query personalizzato. Inoltre, un ambiente di sviluppo integrato (IDE) è in grado di aiutare nella riduzione degli errori di battitura. Le query native sarebbero quindi completamente indipendenti dai tipi e accessibili dalle funzionalità di refactoring di un IDE. Infine, le query possono essere eseguite, testate e prototipate rispetto a raccolte di memoria normale senza il back-end di un database.

Le query e il relativo SQL di accompagnamento non sono necessariamente trasferibili su altri database. Al ritorno di molte entità da una particolare query nativa, queste stesse entità devono essere specificate, oltre che mappate, ai risultati della colonna nelle istruzioni SQL in un programma software di mappatura della definizione dei metadati. Di conseguenza, possono essere utilizzati per mappare i risultati JDBC tramite il runtime persistente negli oggetti previsti. L’uso del parametro del nome non è mai definito per questi tipi di query e le applicazioni portatili possono utilizzare solo l’associazione dei parametri posizionali per le query SQL native. Il supporto dei join è limitato alle relazioni di singoli valori.

Per utilizzare le query native, un programmatore deve descrivere un set di risultati SQL. La descrizione del set di risultati aiuta un programma come Entitymanager a mappare le colonne sulle proprietà delle entità. I risultati scalari possono anche essere definiti e mescolati con altri risultati di entità, con conseguente restituzione di una colonna alias. Una volta descritti i set di risultati, è possibile eseguire query native.