j2ee: czy commit() jest wymagany przy query?

j2ee: czy commit() jest wymagany przy query?
SM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

Witam,
Mam kod, który przegląda (przez JPA) bazę danych.
Jestem świeżakiem w j2ee i dlatego pytam czy przy odpytywaniu bazy:

Kopiuj
EntityManager em; //... inicjalizacja
Query q = em.createNativeQuery("jakies zapytanie");
q.getResultList();

Powinienem dawać na początku

Kopiuj
em.getTransaction().begin();

a na końcu:

Kopiuj
em.getTransaction().commit();

BTW Rozumiem, że em.close() powinien być wywoływany za każdym razem gdy kończymy prace z bazą?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

To wszystko zalezy :)
Możesz dać na tej metodzie jakieś

Kopiuj
@Transactional

I wtedy nie będziesz potrzebował ręcznie sie bawić w begin i commit. Jeśli chodzi o zamykanie Entity Managera to znów zależy. Zwykle tego nie robisz bo managera masz wstrzykiwanego i on sam sie zamknie jak będziesz stopował serwer.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.