HIBERNATE JBoss.org
 |  Register  | 
     
News 
About 
   Feature List 
   Road Map 
Documentation 
   Related Projects 
   External Documentation 
Download 
Forum & Mailinglists 
Support & Training 
JIRA Issue Tracking
Wiki Community Area


Hibernate Public Training Courses


Get Hibernate in Action eBook!


JavaWorld 2003 Finalist


Jolt Award 2004 Winner
      
About > Introducing Hibernate

Introducing Hibernate

Working with object-oriented software and a relational database can be cumbersome and time consuming in today's enterprise environments. Hibernate is an object/relational mapping solution for Java environments. The term object/relational mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema.

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 and can significantly reduce development time otherwise spent with manual data handling in SQL and JDBC.

Hibernate's goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate adapts to your development process, no matter if you start with a design from scratch or work with a legacy database. Hibernate generates SQL for you, relieves you from manual result set handling and object conversion and keeps your application portable to all SQL databases. Hibernate provides transparent persistence, the only requirement for a persistent class is a no-argument constructor. See our list of frequently asked questions about Hibernate.

Hibernate is typically used in Java Swing applications, Java Servlet-based applications, or J2EE applications using EJB session beans. See this page for an overview of Hibernate application architecture.

The up-to-date Hibernate road map gives you an overview of the current state and the plans for the future.

Hibernate key features:

  • Natural programming model - Hibernate supports natural OO idiom; inheritance, polymorphism, composition and the Java collections framework
  • Support for ultra-fine-grained object models - a rich variety of mappings for collections and dependent objects
  • No build-time bytecode enhancement - there's no extra code generation or bytecode processing steps in your build procedure
  • Extreme scalability - Hibernate is extremely performant, has a dual-layer cache architecture, and may be used in a cluster
  • The query language - Hibernate addresses both sides of the problem; not only how to get objects into the database, but also how to get them out again
  • Support for "application" transactions - Hibernate supports both long-lived persistence contexts, and detach/reattach, and takes care of optimistic locking automatically
  • Free / open source - Hibernate is licensed under the LGPL (Lesser GNU Public License)
      

coWiki