Interogările native sunt interogări exprimate prin Structured Query Language (SQL) și sunt concise, precum și metode sigure de tip de expresie de interogare C++ și Java. Utilizarea interogărilor native este benefică în utilizarea caracteristicilor specifice din bazele de date, inclusiv indicii de interogare și anumite caracteristici specifice bazei de date. De asemenea, sunt utile în furnizarea de căi curate de migrare direct din aplicații care utilizează SQL sau Java Database Connectivity (JDBC™). Interogările native sunt folosite pentru a furniza rezultate constând din valori scalare, entități sau ambele. Aceste tipuri de interogări acceptă utilizarea SQL nativ pe o bază de date țintă.
Aceste tipuri de interogări pot depăși deficiențele unei interfețe de programare a aplicațiilor (API) bazate pe șiruri. Interogările de acest fel sunt utilizate într-o bază de date cu obiecte, unde persistența obiectului este o sarcină comună pentru programatori și o caracteristică comună a bazei de date. Interogările non-native, totuși, apar străine în programele care sunt orientate pe obiect, deoarece expresiile lor sunt șiruri simple și grafice de obiecte care conțin șiruri intercalate.
Interogările native ajută la atenuarea problemelor cu care se confruntă bazele de date prin exprimarea unei interogări în Java și C++. Interogările pot fi scrise fără un API sau un limbaj de interogare personalizat. În plus, un mediu de dezvoltare integrat (IDE) poate ajuta la reducerea greșelilor de scriere. Interogările native ar fi apoi la maximum sigure de tip și ar putea fi accesate de caracteristicile de refactorizare ale unui IDE. În cele din urmă, interogările pot fi rulate, testate și prototipate împotriva colecțiilor de memorie simplă fără back-end-ul unei baze de date.
Interogările și SQL-urile care le însoțesc nu sunt neapărat transferabile în alte baze de date. La întoarcerea multor entități printr-o anumită interogare nativă, aceleași entități ar trebui specificate, precum și mapate, la rezultatele coloanei în instrucțiuni SQL într-un program software de mapare a definiției metadatelor. Ca rezultat, acestea pot fi folosite pentru a mapa rezultatele JDBC prin runtime persistente în obiectele așteptate. Utilizarea parametrilor de nume nu este niciodată definită pentru aceste tipuri de interogări, iar aplicațiile portabile pot utiliza numai legarea parametrilor de poziție pentru interogările SQL native. Suportul pentru îmbinări este limitat la relațiile cu valori individuale.
Pentru a utiliza interogări native, un programator trebuie să descrie un set de rezultate SQL. Descrierea setului de rezultate ajută un program precum Entitymanager să mapeze coloanele pe proprietățile entităților. Rezultatele scalare pot fi, de asemenea, definite și amestecate cu rezultate ale altor entități, rezultând o întoarcere a unei coloane alias. Odată ce seturile de rezultate sunt descrise, este posibilă executarea interogărilor native.