Pytania w tym artykule pojawiły się podczas szkolenia Tworzenie aplikacji internetowych z wykorzystaniem szkieletu aplikacyjnego Spring oraz technologii Hibernate realizowanego w dniach 13-17.04.2015r.
Czy JPA wspiera wywoływanie procedur składowanych ?
Od wersji 2.1 api JPA wspiera natywnie wywoływanie procedur składowanych. JPA 2.1 wchodzi w skład JEE 7. Przykład: entityManager.createStoredProcedureQuery(„database_stored_proc”);
Czy JPA poza wykonywaniem zapytań w formacie JPQL pozwala na wywoływanie zwykłych zapytań sql ?
Tak, JPA pozwala na wywoływanie natywnych zapytań sql. Przykład: entityManager.createNativeQuery(„SELECT_SQL”).getResultList();
Do czego mogą być przydatne zapytania natywne w JPA ?
„Mimo rozbudowanego języka zapytań JP QL i Criteria API
nie zawsze można osiągnąć wymagany efekt. Np przy pomocy JPA nie da się wygenerować zapytań hierarchicznych.
Dodatkowo w zapytaniach generowanych przez JPA/Hibernate mogą wystąpić problemy wydajnościowe. W takiej sytuacji zapytania natywne daje pełną kontrolę nad wykonywanym zapytaniem sql.”