Języki

Erudis - your road to knowledge
Java Persistence API 2.0

JPA 2.0 jest konsekwentnym krokiem w stronę utworzenia standardowego i funkcjonalnego mostu relacyjno-obiektowego dla aplikacji Java. Dodano do technologii parę drobnych udogodnień, między innymi:

  • usuwanie osieroconych rekordów w bazie danych w przypadku gdy został usunięty rekord pełniący rolę rodzica w relacji
  • ułatwiono modelowanie kolekcji obiektów – nie ma już potrzeby tworzenia dodatkowej, czasem zupełnie zbytecznej, klasy reprezentującej tabelę w bazie danych
  • rozbudowano język zapytań Java Persistence Query Language (JPQL) o nowe użyteczne elementy

Pojawiły się także z dawna wyczekiwanie poważniejsze zmiany, przede wszystkim interfejs Criteria, znany dobrze użytkownikom Hibernate.

Zapytania Criteria są konstruowane z obiektów Java, więc są silnie typowane, w odróżnieniu od zapytań JPQL, które są łańcuchami znaków. Znakomicie ułatwia to tworzenie złożonych, dynamicznie budowanych zapytań czy refaktoryzację aplikacji.

Drugą znaczącą zmianą jest możliwość pesymistycznego blokowania rekordów. JPA 1.0 pozwalał wyłącznie na optymistyczne blokowanie rekordów, wykorzystując mechanizm wersjonowania rekordów. JPA 2.0 pozwala także na stosowanie blokad pesymistycznych, czyli faktycznego zablokowania rekordu w bazie danych.