Ejb vs Hibernate
Lai nokļūtu EJB, ir labi saprast, no kurienes tā rodas. Pastāv divu veidu entītiju pupas. Tās ir CMP un BMP. CMP attiecas uz konteinera pārvaldīto noturību, savukārt BMP attiecas uz pupiņu pārvaldīto noturību. EJB tiek īpaši izmantots objektu formulēšanai un serializēšanai, strādājot ar relāciju datu bāzēm SQL.
Kad spēlē sarežģītas lietojumprogrammas izstrāde, tā sākas ar modelēšanu. Vēlams, lai klases un objekti tiktu izmantoti virs tabulām, jo tie nāk ar sarežģītām savstarpējām attiecībām, kas var radīt daudz problēmu, ja tās nav labi ieviestas. Tas būtībā nozīmē, ka mēs strādājam ar sistēmu, kas domāšanu projektē objektos, nevis tabulās. Relāciju datu bāzu izmantošana ir diezgan ātra un pārbaudīta laikā. Tas, salīdzinot ar objekta serializāciju, ietaupa laiku, jo kompleksa objekta serializācija ir ļoti lēns process. Relāciju datu bāzes tehnoloģijas izmantošana ir ātri un laikā pārbaudīta, un tā ir iecienīta daudzu izstrādātāju vidū, un tāpēc iemesls tam tiek dots.
Datu izstrādē ir iespējams nodarboties tikai ar tabulām un izmantot manipulācijas ar datiem un lasīt tos ar sesiju pupiņām. Ciktāl tas ir iespējams, tā praktiskums nav iespējams, it īpaši, ja, lai izmantotu iepriekšminēto metodi, strādājot ar patiešām sarežģītiem projektiem. Šis ir pamats, kas seko vienību pupiņu izmantošanai EJB.
CMJ EJB1 tika izveidots tā, lai būtu piemērots lietošanai ar vienkāršām tabulām, kurām nav sarežģītu attiecību ar citām tabulām. CMP izmantošana ļauj izvairīties no atsaucēm, kas attiecas uz pamatā esošo datu bāzi. Tas faktiski nozīmē, ka tas ir vairāk pārnēsājams un pārdevējs neieslēdzas. EJB 1 saglabā datus arī objektu datu bāzēm, izņemot relāciju datu bāzes.
EJB 2.0 ir nācis ar revolucionāru dizainu, kura mērķis ir uzlabot vispārējo funkcionalitāti. Galvenās izmaiņas tajā ir formāts, ko tā ierosina CMP rakstīšanai. Tas nodrošina attiecības un ierosina arī izmantot vienkāršu vaicājumu valodu, ko dēvē par EBJ-QL. Šīs valodas mērķis ir samazināt tīkla trafiku, izsaucot entītijas pupu par sesijas pupiņu.
Hibernēts, no otras puses, ir ORM rīks, kuram nav stāvas mācīšanās līknes, kas ir kopīga EJB un kas nav tik pakļauta kļūdām kā EJB. Hibernate tiek dota priekšroka elastības dēļ, ļaujot Servlets un JSP to izmantot. Hibernācija ir veidota atbilstoši J2EE specifikācijai, kas padara to piemērojamu lielākajā daļā izstrādātāju lietojumprogrammu. Hibernēts ir īpašs ORM rīks, jo to var ne tikai izmantot EJB konteineros, bet arī izmantot atsevišķos konteineros un tīmekļa konteineros. Šī ir galvenā atšķirība, kas izceļas starp EJB un Hibernate. Tāpēc izstrāde ar Hibernate palīdzību ir daudz vienkāršāka un mazāk sarežģīta nekā EJB.
Hibernācija ir šķietami populārāka J2EE vides izmantotāju vidū, un, ja EBJ turpinās attīstīt sarežģītas funkcijas, kuras prasa zināmu laiku, lai ar tām iepazīstītos, Hibernate būs dominējošā loma šajā jomā, un EJB varētu atrasties izslēgta. J2EE šobrīd nesaskaras ar lielāko daļu izstrādātāju, uz kuriem tā tiecas orientēties tirgū.
Kopsavilkums
EJB ir entītijas pupas, kuras speciāli izmanto objekta formulēšanai
Datu nolasīšanā un manipulācijā ir iespēja izmantot tabulas un sesijas pupiņas, lai gan tas nav praktiski
EBJ nodrošina salīdzinoši vienkāršu vaicājumu valodu attīstībai, ko dēvē par EJB-QL
EBJ kļūda
Pārziemot ir samērā viegli saprast un ieviest
Pārziemot nav tik bieži pieļaujama kļūda kā EJB