Ejb vs Hibernate
For å komme til EJB er det godt å forstå bakgrunnen for hvor den kommer fra. Det finnes to typer entitetsbønner. Dette er CMP og BMP. CMP refererer til Container Managed Persistence mens BMP refererer til Bean Managed Persistence. EJB er spesielt brukt for objektformulering og serialisering når det gjelder relasjonsdatabaser i SQL.
Når utviklingen av en kompleks applikasjon kommer til å spille, begynner den med modellering. Klasser og objekter er foretrukket å bli brukt over bordene, da de kommer med komplekse sammenhenger som kan forårsake mange problemer hvis det ikke er godt implementert. Dette innebærer i hovedsak at vi håndterer et system som benytter design av tenkning i objekter og ikke i tabeller. Bruken av relasjonsdatabaser er ganske rask og testet i tide. Dette sammenlignet med objekt serialisering sparer tid som komplekse objekt serialisering er en veldig sakte prosess. Bruken av relasjonsdatabaseteknologi er en rask og tidstestet og populær blant mange utviklere og dermed grunnen til at det er foretrukket.
Det er mulig å bare håndtere tabeller i utvikling og benytte øktbønner i datamanipulering og avlesing av data. I så stor grad som dette er mulig, er det ikke mulig å praktisere det, særlig når det gjelder å gjøre med veldig komplekse prosjekter for å bruke den ovennevnte metoden. Dette er grunnlaget som følger bruken av enhetsbønner i EJB.
CMP i EJB1 ble designet for å være egnet til bruk med enkle bord som ikke kommer med et komplekst forhold til andre tabeller. Bruken av CMP unngår referanser som refererer til den underliggende databasen. Dette betyr faktisk at det er mer bærbart og leverandørens lås ikke oppstår. EJB 1 vedvarer også data til objektdatabaser i tillegg til relasjonsdatabaser.
EJB 2.0 har kommet med en revolusjonerende design som er rettet mot å forbedre den generelle funksjonaliteten. Hovedendringen med det er formatet det foreslår for å skrive CMP. Det gir relasjoner og foreslår også bruk av et enkelt spørrespråk som refereres til som EBJ-QL. Dette språket tar sikte på å minimere nettverkstrafikken ved å ringe til et foretak bønne en øktbønne.
Hibernate derimot, er et ORM-verktøy som ikke har en bratt læringskurve som er vanlig med EJB, og er ikke så feilaktig som EJB. Hibernate er foretrukket på grunn av sin fleksibilitet, slik at Servlets og JSP er bruk. Hibernate er bygget i tråd med J2EE-spesifikasjonen som gjør den anvendelig i de fleste applikasjoner som en utvikler vil ha. Hibernate er et spesielt ORM-verktøy, da det ikke bare kan brukes i EJB-beholdere, men også i frittstående beholdere og webbeholdere. Dette er hovedforskjellen som skiller seg ut mellom EJB og Hibernate. Utvikling med Hibernate er derfor mye enklere og mindre komplisert i motsetning til bruk av EJB.
Hibernate er tilsynelatende mer populært blant brukere av J2EE-miljøet, og hvis EBJ fortsetter med utvikling av komplekse funksjoner som tar litt tid å få brukerne til å bli kjent, vil Hibernate være den dominerende i feltet, og EJB kan finne seg å være låst ut av J2EE som for øyeblikket, er det ikke i kontakt med de fleste utviklerne som det søker å målrette mot i markedet.
Sammendrag
EJB er en enhetsbønne som er spesielt brukt for objektformulering
Det er mulighet for bruk av tabeller og bruk av øktbønner i dataavlesning og manipulering, men ikke praktisk
EBJ gir et relativt enkelt spørrespråk for utvikling referert til som EJB-QL
EBJ feil utsatt
Hibernate er relativt lett å forstå og implementere
Hibernate ikke som feil utsatt som EJB