Entity bean

A HupWiki-ből...

Az Enterprise Bean-ek háromfélék lehetnek:

Egy többrétegû alkalmazásnak két vége van; a klienseket a session bean-ek képviselik. Az entity bean-ek az alkalmazás másik végén található objektumokat képviselik, amelyek valamilyen perzisztens tárolóból származnak (tipikus példa: egy relációs adatbázisból). Egy entity bean többnyire megfeleltethető egy táblának az adatbázisban, és minden egyes példánya a tábla egy sorát reprezentálja.

- Ezt a bekezdést légy szíves javítsd ki, lásd a Session bean-ek címszóhoz írtakat is. A Session bean-ek tipikusan nem kliens szerepet játszanak, mivel a többrétegű alkalmazás fejlesztésben nem az adatbázis A szerver, hanem az csak egy adattároló. A szerver terület, ha már mindenáron kliens-szerver osztályozást akarsz használni, magában foglalja az üzleti logika szerver oldali részét is, amit tipikusan Session bean-ekben szoktak elhelyezni.


Az entity bean-ek jelentősen eltérnek a session bean-ektől:

  • Szerver leállást túlélő perzisztens állapottal rendelkeznek
  • Állapotuk mentését illetve visszaállítását saját maguk is végezhetik (Bean Managed Persistence)
  • De a már említett szabványos környezet (a Bean Container) is biztosít hozzá támogatást (Container Managed Persistence)
  • Több kliens megosztva használhatja őket (de csak atomikusan, tehát egyszerre egy szál)
  • Emiatt szükséges, hogy entity bean-ek résztvételével tranzakciók is lebonyolíthatóak legyenek, a Bean Container ezt is támogatja (ez a Session bean-ekre ugyanúgy igaz).
  • Az entity bean-ek rendelkeznek egyedi azonosítóval, egy elsődleges kulccsal, ami alapján kereshető (a Home interfészen található findByPrimaryKey metódus segítségével)
  • Entity bean-ek között értelmezhetők relációk. Ez saját perzisztencia-kezelés esetén úgy működik, ahogy megírjuk, a környezet által kezelt esetben ,,container-managed relationship"-ről szokás beszélni, és a relációs adatbázisok szerkesztésénél megszokothoz hasonló módon hozhatjuk létre őket
  • Lehetséges rajtuk kereséseket futtatni, vagy finder metódusokkal, vagy dinamikus EJB-QL query-k segítségével segítségével

Amikor entity bean-t érdemes használni:

  • ha egy Bean kevésbé eljárást, inkább valamely üzleti objektumot képvisel
  • ha egy Bean állapotának meg kell őrződnie
  • ha egy olyan központi szinkronizációs pontra van szükség, amely újraindítások közt is garantáltan megörződik