- Hibernate is Database independent, it can be used for any type of Database.
- Hibernate persists java objects into database (Instead of primitives).
- Hibernate generates efficient queries for java application to communicate with Database
- Hibernate is applicable for both standalone applications and Enterprise Applications.
- Supports over 30 dialects
- Hibernate is providing very good support for Associations and Joins.
- Hibernate is having very good Annotations in order to reduce XML tech dependency in enterprise applications.
- Hibernate is having very good implementations for Primary key generation algorithms in order to generate and insert a unique primary key value for each and every insertion operation.
- Hibernate is providing very good Collections support to manage data.
- Hibernate is having its own query language, which is database independent, Object Oriented, that is, HQL in order to perform database operations.
- Hibernate has provided very good Cache mechanisms in order to reuse the results.
- Hibernate is having very good support for Connection
Pooling mechanisms in order to improve Connection re usability.
- Hibernate is supported by almost all IDEs and Application Servers.
- Hibernate is against for SQL Queries in enterprise applications directly, but, if we want to write database dependent SQL queries then it is possible to provide database dependent SQL queries by using “Native SQL”.
- Hibernate has provided very good transactions support.