Hibernate har en stejl indlæringskurve, men den har også følgende fordele:
- Indsæt/opdateringer er nemmere på grund af "beskidte kontrol". Når du har tjenesten på plads, kan du nemt tilføje nye felter uden at ændre en linje i din tjeneste. Du skal blot tilføje nye kolonner og udfylde dem, og Hibernate vil tage sig af persistensdelen.
- Dvaletilstand kan løse den "tabt opdatering" problem på grund af dets optimistiske låsende samtidighedskontrol.
- Integrationstest er nemmere, da du kan generere skemaet automatisk til din database i hukommelsen (HSQLDB, H2, Derby)
- Den har en caching-plug-in-understøttelse (gennem tredjeparts 2. niveau caching-udbydere), nogle udbydere giver dig mulighed for at have både "transaktionelle" og "clustered" caches.
- Den har en indbygget AUDIT-understøttelse (Envers)
Så det er ikke en 'standard' persistensløsning, da der er millioner af webapps skrevet i PHP uden ORM-ramme, som kører med succes i produktionen.
Jeg tror, at Hibernate har meget mere mening for virksomhedsapplikationer, hvor caching, revision, samtidighedspålidelighed er obligatoriske ikke-funktionelle krav.