Hibernate is a powerful, ultra-high performance object/relational persistence and query service for Java. Hibernate lets you develop persistent objects following common Java idiom – including association, inheritance, polymorphism, composition and the Java collections framework. Extremely fine-grained, richly typed object models are possible. The Hibernate Query Language, designed as a “minimal” object-oriented extension to SQL, provides an elegant bridge between the object and relational worlds. Hibernate is now the most popular ORM solution for Java. Hibernate rejects the use of build-time code generation / bytecode processing. Instead, reflection and runtime bytecode generation are used and SQL generation occurs at system startup time. This decision ensures that Hibernate does not impact upon IDE debugging and incremental compile. All major SQL database management systems are supported: Oracle, DB2, MySQL, PostgreSQL, Sybase, SAP DB, HypersonicSQL, Microsoft SQL Server, Informix, FrontBase, Ingres, Progress, Mckoi SQL, Pointbase and Interbase. Support for other databases with JDBC drivers is easy to add. Of course, Hibernate integrates elegantly (and without restrictions) with all popular J2EE application servers and web containers. Hibernate is supported by open source development tools including XDoclet, Middlegen and AndroMDA.