I was asked in an interview this question so I answered with the following:
-Better Performance: - Efficient queries. - 1st and 2nd level caching. - Good caching gives better scalability. - Good Database Portability: - Changing the DB is as easy as changing the dialect configuration. - Increased Developer Productivity: - Think only in object terms not in query language terms.
But I also feel that systems fall in one of the below categories, and Hibernate may not be suited for all these cases, I'm interested in your thoughts about this, do you agree with me? please let me know when would use HB in the following case and why.
Regards Ramo
Hibernate is suitable for most of the applications where you have an object oriented model. So you could ask: when is an object oriented model appropriate?
I would say, the biggest advantage is the developer productivity. Query performance by itself is usually worse then hand-coded queries, because it can't optimize for each particular case. Hibernate compensates this very well by the use of caches.
Write only (and mostly) systems can't take much advantage from the caches, it could even decrease performance a lot (you should avoid using the cache). These kind of systems usually do not need an object oriented model, they just push data into the data base.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With