Ejb protiv hibernacije
Da biste došli do EJB, dobro je razumjeti pozadinu iz koje potiče. Postoje dvije vrste entitetskih graha. To su CMP i BMP. CMP se odnosi na postojanost kojom se upravlja spremnikom, dok se BMP odnosi na postojanost kojom upravljaju grah. EJB se posebno koristi za objektnu formulaciju i serializaciju pri radu s relacijskim bazama podataka u SQL-u.
Kad se počne složiti razvoj složene aplikacije, započinje s modeliranjem. Klase i predmeti preferiraju se upotrebom tablica jer dolaze u složenim međusobnim odnosima koji mogu uzrokovati mnogo problema ako nisu dobro implementirani. To u suštini znači da se bavimo sustavom koji koristi dizajn mišljenja u objektima, a ne u tablicama. Uporaba relacijskih baza podataka prilično je brza i testirana na vrijeme. Ovo u usporedbi sa serializacijom objekta štedi vrijeme jer je složena serializacija objekta vrlo spor proces. Upotreba tehnologije relacijske baze podataka brzo se provjerava i testira se s vremenom i popularno je kod mnogih programera, pa je i razlog tome poželjan.
Moguće je čisto baviti se tablicama u razvoju i upotrebljavati grah sesije za manipulaciju i čitanje podataka. Koliko god je to moguće, njegova praktičnost nije moguća, pogotovo kada se radi o stvarno složenim projektima da bi se koristila gore navedena metoda. To je osnova koja slijedi uporabu entitetskih graha u EJB-u.
CMP u EJB1 je dizajniran tako da bude prikladan za uporabu s jednostavnim tablicama koje nemaju složeni odnos s drugim tablicama. Upotreba CMP-a izbjegava reference koje se odnose na bazu podataka. To u stvari znači da je prijenosniji i ne dolazi do zaključavanja dobavljača. EJB 1 uporno čuva i podatke kako bi se ulagali u baze podataka pored relacijskih baza podataka.
EJB 2.0 došao je s revolucionarnim dizajnom koji je usmjeren na poboljšanje cjelokupne funkcionalnosti. Glavna promjena s njom je format koji predlaže za pisanje CMP-a. Pruža odnose i također predlaže upotrebu jednostavnog jezika upita koji se naziva i EBJ-QL. Ovaj jezik ima za cilj minimizirati mrežni promet putem pozivanja subjekta kao grah sesije.
Hibernacija s druge strane je ORM alat koji nema strmu krivulju učenja koja je uobičajena s EJB i nije tako osjetljiva na pogreške kao EJB. Hibernacija se preferira zbog svoje fleksibilnosti, što omogućuje Servletima i JSP-u njezinu upotrebu. Hibernata je izgrađena u skladu s J2EE specifikacijom koja je čini primjenjivom u većini aplikacija koje razvijatelj ima. Hibernate je poseban ORM alat jer se ne može koristiti samo u EJB spremnicima, već je primjenjiv i u samostalnim i web kontejnerima. To je glavna razlika koja se ističe između EJB i hibernacije. Razvoj s hibernacijom stoga je mnogo lakši i manje kompliciran za razliku od korištenja EJB-a.
Hibernata je naizgled popularnija među korisnicima okruženja J2EE i ako EBJ nastavi s razvojem složenih funkcija za koje je potrebno neko vrijeme da se korisnici upoznaju, hibernacija će biti dominantna na terenu, a EJB će se možda zatvoriti Trenutno J2EE nije u kontaktu s većinom programera koje želi ciljati na tržištu.
Sažetak
EJB je entitetski grah koji se posebno koristi za formulaciju objekata
Postoji mogućnost korištenja tablica i upotreba graha sesije za čitanje i manipulaciju podacima, iako nije praktično
EBJ pruža relativno jednostavan jezik upita za razvoj koji se naziva EJB-QL
EBJ greška sklona
Hibernacija je relativno lako razumjeti i implementirati
Hibernacija nije sklona greškama kao EJB