Ejb proti mirovanju
Da bi prišli do EJB, je dobro razumeti ozadje, od kod izvira. Obstajata dve vrsti entitetnih fižol. To sta CMP in BMP. CMP se nanaša na obstojnost, ki jo nadzira vsebnik, medtem ko se BMP nanaša na obstojnost, ki jo upravlja z bean. EJB se posebej uporablja za oblikovanje predmetov in serializacijo pri obravnavi relacijskih baz podatkov v SQL.
Ko se začne razvijati zapletena aplikacija, se začne z modeliranjem. Razrede in predmete najraje uporabljate nad tabelami, saj imajo zapletene medsebojne odnose, ki lahko povzročijo veliko težav, če niso dobro izvedeni. To v bistvu pomeni, da imamo opravka s sistemom, ki uporablja zasnovo razmišljanja v predmetih in ne v tabelah. Uporaba relacijskih baz podatkov je precej hitra in pravočasno preizkušena. To v primerjavi s serializacijo objekta prihrani čas, saj je zapletena serializacija predmeta zelo počasen proces. Uporaba tehnologije relacijskih baz podatkov je hitro in časovno preizkušena ter priljubljena med številnimi razvijalci, zato je njen razlog najprimernejši.
V tabeli je mogoče popolnoma obravnavati tabele in uporabiti sejne grah pri manipulaciji s podatki in branju podatkov. Kolikor je to mogoče, njegova praktičnost ni mogoča, še posebej pri uporabi resnično zapletenih projektov za uporabo zgornje metode. To je osnova, ki sledi uporabi entitetnega fižola v EJB.
CMP v EJB1 je bil zasnovan tako, da je primeren za uporabo s preprostimi tabelami, ki nimajo zapletenega razmerja z drugimi tabelami. Uporaba CMP se izogne referencam, ki se nanašajo na osnovno bazo podatkov. To dejansko pomeni, da je prenosnejši in da se prodajalec ne zaklene. EJB 1 obdrži podatke tudi za nasprotovanje baz podatkov poleg relacijskih baz podatkov.
EJB 2.0 je prišel z revolucionarnim dizajnom, ki je namenjen izboljšanju splošne funkcionalnosti. Glavna sprememba pri njej je oblika, ki jo predlaga za pisanje CMP. Zagotavlja razmerja in predlaga tudi uporabo preprostega poizvedbenega jezika, ki ga imenujemo EBJ-QL. Ta jezik je namenjen zmanjšanju omrežnega prometa s klicanjem subjekta med seje.
Hibernacija na drugi strani je orodje ORM, ki nima strme krivulje učenja, ki je skupna z EJB in ni tako nagnjena k napakam kot EJB. Hibernacija je prednostna zaradi svoje prožnosti, ki omogoča Servlets in JSP njegovo uporabo. Hibernate je narejen v skladu s specifikacijo J2EE, ki omogoča uporabo v večini aplikacij, ki jih bo imel razvijalec. Hibernate je posebno orodje za ORM, saj ga ni mogoče uporabljati samo v posodah EJB, ampak ga je mogoče uporabiti tudi v samostojnih posodah in spletnih posodah. To je glavna razlika med EJB in hibernacijo. Razvoj s sistemom hibernacije je zato mnogo lažji in manj zapleten v primerjavi z uporabo sistema EJB.
Hibernate je navidezno bolj priljubljen med uporabniki okolja J2EE in če EBJ nadaljuje z razvojem zapletenih funkcij, ki bodo uporabnikom vzele nekaj časa, bo Hibernate na tem področju prevladujoč, EJB pa se bo morda znašel zaklenjen J2EE trenutno nima stika z večino razvijalcev, ki si jih želi prizadevati na trgu.
Povzetek
EJB je entitetni fižol, ki se posebej uporablja za oblikovanje predmetov
Obstaja možnost uporabe tabel in uporabe grah seje pri branju in manipulaciji podatkov, čeprav ni praktično
EBJ ponuja razmeroma preprost jezik poizvedb za razvoj, imenovan EJB-QL
Nagnjenost k napakam EBJ
Hibernacija je razmeroma enostavna za razumevanje in izvajanje
Hibernacija ni tako nagnjena k napakam kot EJB