Java Persistence API

Z FI WIKI
Verze z 2. 10. 2006, 12:52; Xadamek2 (diskuse | příspěvky)

(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

Java Persistence API je Java EE standard pro zajištění perzistence dat prostřednictvím objektově relačního mapování (ORM). Tento standard je definován prostřednictvím specifikace Enterprise JavaBeans 3.0 (JCP 220 [1]), lze jej však použít i samostatně mimo EJB kontejner (tj. např. v obyčejných webových aplikacích).

Historie

V dřívějších verzích EJB (EJB 1.x, EJB 2.x) byla perzistence dat zajišťována prostřednictvím EJB komponent typu Entity EJB, které reprezentovaly data, s nimiž aplikace pracuje. Tyto objekty existují v EJB kontejneru a přistupuje se k nim vzdáleně převážně prostřednictvím set/get metod. Změny jednotlivých atributů jsou při potvrzení transakce (commit) EJB kontejnerem propagovány do relační databáze.

Protože by vzdálený přístup k jednotlivým atributům objektu byl náročný (přístup ke každému atributu vyžaduje nové vzdálené volání), používaly se tzv. Data Transfer Object (DTO, někdy nazývané Value Objects), které zapouzdřovaly data příslušné entity. Předání všech dat entity se pak prostřednictvím tohoto objektu zajistilo jedním síťovým voláním.

Pro read-only operace se z důvodů úspory režie EJB kontejneru dokonce ani nepoužívaly Entity EJB, ale příslušné DTO objekty se vytvářely přímo z relační databáze pomocí tzv. DAO objektů. V praxi to vedlo k tomu, že některé EJB aplikace používaly výhradně komponenty typu Session EJB a místo Entity EJB používaly nějaký samostaný ORM nástroj (např. Hibernate).

Tento princip se osvědčil a na jeho základě vznikl standard Java Persistence API (púvodní komponenety typu Entity EJB jsou stále podporovány kvli zpětné kompatibilitě).

Externí odkazy