Jakie są zapytania natywne?
Zapytania natywne to zapytania wyrażone za pomocą języka SQL (Structured Query Language) i są zwięzłe, a także bezpieczne dla typu metody wyrażania zapytań w języku C ++ i Java. Korzystanie z natywnych zapytań jest korzystne w przypadku korzystania z określonych funkcji baz danych, w tym wskazówek dotyczących zapytań i niektórych funkcji specyficznych dla bazy danych. Są także przydatne w zapewnianiu czystych ścieżek migracji bezpośrednio z aplikacji korzystających z połączenia SQL lub Java Database Connectivity (JDBC ™). Natywne zapytania służą do dostarczania wyników składających się z wartości skalarnych, encji lub obu. Tego typu zapytania obsługują użycie natywnego SQL w docelowej bazie danych.
Tego rodzaju zapytania mogą przezwyciężyć niedociągnięcia interfejsu programowania aplikacji (API). Tego rodzaju zapytania są używane w obiektowej bazie danych, gdzie utrwalanie obiektów jest częstym zadaniem dla programistów i wspólną cechą bazy danych. Jednak zapytania nienatywne wydają się obce w programach zorientowanych obiektowo, ponieważ ich wyrażenia są prostymi ciągami i grafami obiektowymi zawierającymi przeplatane ciągi.
Natywne zapytania pomagają złagodzić problemy napotykane w bazach danych, wyrażając zapytania w Javie i C ++. Zapytania można pisać bez interfejsu API lub dostosowanego języka zapytań. Ponadto zintegrowane środowisko programistyczne (IDE) może pomóc w redukcji literówek. Natywne zapytania byłyby wtedy w pełni bezpieczne dla typu i byłyby dostępne dzięki funkcjom refaktoryzacji IDE. Wreszcie zapytania można uruchamiać, testować i prototypować na zwykłych kolekcjach pamięci bez zaplecza bazy danych.
Zapytania i towarzyszący im kod SQL niekoniecznie mogą być przenoszone między innymi bazami danych. Po zwróceniu wielu encji przez określone natywne zapytanie, te same encje powinny zostać określone, a także odwzorowane, na wyniki kolumn w instrukcjach SQL w programie do mapowania definicji metadanych. W rezultacie można ich użyć do mapowania wyników JDBC przez trwałe środowisko wykonawcze na oczekiwane obiekty. Zastosowanie parametrów nazw nigdy nie jest zdefiniowane dla tego typu zapytań, a aplikacje przenośne mogą używać wiązania parametrów pozycyjnych tylko dla rodzimych zapytań SQL. Obsługa połączeń jest ograniczona do relacji pojedynczych wartości.
Aby użyć rodzimych zapytań, programista musi opisać zestaw wyników SQL. Opis zestawu wyników pomaga programowi, np. Entitymanager mapować kolumny na właściwości encji. Wyniki skalarne można również definiować i mieszać z wynikami innych encji, co powoduje zwrócenie kolumny aliasu. Po opisaniu zestawów wyników możliwe jest wykonywanie natywnych zapytań.