Hibernate heeft een steile leercurve, maar heeft ook de volgende voordelen:
- Invoegen/updates zijn gemakkelijker vanwege "vuile controle". Zodra u de service hebt geïnstalleerd, kunt u eenvoudig nieuwe velden toevoegen zonder een regel in uw service te wijzigen. Je hoeft alleen maar nieuwe kolommen toe te voegen en die te vullen en Hibernate zorgt voor het persistentiegedeelte.
- Hibernate kan de "verloren update" oplossen probleem vanwege de optimistische controle over gelijktijdige vergrendeling.
- Integratietests zijn eenvoudiger, omdat u het schema automatisch kunt genereren voor uw in-memory database (HSQLDB, H2, Derby)
- Het heeft een caching plug-in-ondersteuning (via externe 2e niveau caching-providers), sommige providers bieden u de mogelijkheid om zowel "transactionele" als "geclusterde" caches te hebben.
- Het heeft een ingebouwde AUDIT-ondersteuning (Envers)
Het is dus geen 'standaard' persistentie-oplossing, aangezien er miljoenen web-apps zijn geschreven in PHP zonder ORM-framework die met succes in productie worden uitgevoerd.
Ik denk dat Hibernate veel meer zin heeft voor bedrijfstoepassingen waar caching, auditing en gelijktijdigheidsbetrouwbaarheid verplichte niet-functionele vereisten zijn.