Spring, Hibernate - 3 pytania i odpowiedzi ze szkolenia (kwiecień 2015)

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."