Latest release

4.1 (09/02/2012)

Developed by




Overall rating



  • ORM

  • java

  • .net


Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities. It can significantly reduce development time otherwise spent with manual data handling in SQL and JDBC. Hibernate’s design goal is to relieve the developer from 95% of common data persistence-related programming tasks by eliminating the need for manual, hand-crafted data processing using SQL and JDBC. However, unlike many other persistence solutions, Hibernate does not hide the power of SQL from you and guarantees that your investment in relational technology and knowledge is as valid as always.

Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects

Latest reviews


Great project, the defacto ORM. But... the bugs... OMG... the simple bugs that are left open for years and years on.

If only they gave these silly bugs a little more attention... Still, my favorite ORM and can't live with out it anymore.

read full review
Sign in to vote for review score: 0

hibernate is ubiquitous and quite simple to start with. but i met only frustration and dispair, when working with hibernate. there are thousands annoying bugs in bug tracker, documentation lack details (so you are forced to read a book)

heavy use of hibernate results in enormous memory consumption(so manual flushes are a must).

deadlocks are a usual thing and hibernate dont allow to tune locking order.

hibernate don't work with database constraints nicely.

entity state can only be managed from one side of bidirectional relationship.

proxy usage in not trivial when implementing equals or polymorphism. proxy visitor pattern is an example of proxy ugliness.

duplicated entities when doing join fetch is just ridiculous. don't tell me about OUTER joins - if there is always master entity, hibernate should always do master left join child. any solution offered by hibernate community results in perfomance problem - using Set results in duplicates send over network and increasing network load, using distinct projection results in filesort in most databases.

overall, hibernate was a performance issue in our last project. hubernate took much time mantaining it's own session and collection, each commit took seconds(!)

read full review
Sign in to vote for review score: 0
Loading reviews...
Please sign in to rate or post a comment
Scroll to top