Co to są zapytania natywne?

Zapytania natywne to zapytania wyrażane za pomocą języka Structured Query Language (SQL) i są zwięzłymi, a także bezpiecznymi dla typu metodami wyrażeń zapytań C++ i Java. Korzystanie z zapytań natywnych jest korzystne dla wykorzystania określonych funkcji w bazach danych, w tym podpowiedzi do zapytań i niektórych funkcji specyficznych dla bazy danych. Przydają się również do zapewniania czystych ścieżek migracji bezpośrednio z aplikacji korzystających z SQL lub Java Database Connectivity (JDBC™). Zapytania natywne są używane do dostarczania wyników składających się z wartości skalarnych, jednostek lub obu. Te typy zapytań obsługują użycie natywnego SQL w docelowej bazie danych.

Tego typu zapytania mogą przezwyciężyć wady interfejsu programowania aplikacji (API) opartego na ciągach znaków. Zapytania tego typu są używane w obiektowej bazie danych, gdzie trwałość obiektów jest wspólnym zadaniem programistów i wspólną cechą bazy danych. Zapytania inne niż natywne wydają się jednak obce w programach zorientowanych obiektowo, ponieważ ich wyrażenia są prostymi ciągami i grafami obiektowymi zawierającymi ciągi przeplatane.

Zapytania natywne pomagają złagodzić problemy napotykane w bazach danych poprzez wyrażenie zapytania w Javie i C++. Zapytania można pisać bez interfejsu API lub niestandardowego języka zapytań. Ponadto zintegrowane środowisko programistyczne (IDE) może pomóc w redukcji literówek. Zapytania natywne byłyby wtedy w pełni bezpieczne dla typu i dostępne za pomocą funkcji refaktoryzacji IDE. Na koniec zapytania mogą być uruchamiane, testowane i prototypowane na zwykłych kolekcjach pamięci bez zaplecza bazy danych.

Zapytania i towarzyszący im kod SQL niekoniecznie można przenosić między innymi bazami danych. Po zwróceniu wielu jednostek przez konkretne zapytanie natywne, te same jednostki powinny być określone, a także zmapowane do kolumn wyników w instrukcjach SQL w programie do mapowania definicji metadanych. W rezultacie mogą one służyć do mapowania wyników JDBC przez trwałe środowisko wykonawcze na oczekiwane obiekty. Użycie parametrów nazwy nigdy nie jest zdefiniowane dla tego typu zapytań, a aplikacje przenośne mogą używać wiązania parametrów pozycyjnych tylko dla natywnych zapytań SQL. Obsługa złączeń jest ograniczona do relacji pojedynczych wartości.

Aby użyć zapytań natywnych, programista musi opisać zbiór wyników SQL. Opisanie zestawu wyników pomaga programowi, takiemu jak Entitymanager, mapować kolumny na właściwości encji. Wyniki skalarne mogą być również definiowane i mieszane z wynikami innych jednostek, co skutkuje zwróceniem kolumny aliasów. Po opisaniu zestawów wyników możliwe jest wykonanie zapytań natywnych.