Hibernate
Hibernate is a persistance framework for Java objects. It abstracts away an underlying database and maps POJOs to specific tables. Hibernate supports standard CRUD operations and has powerful querying facilities.
DHIS 2 uses Hibernate to become database independent and in order to make the Java code cleaner with regard to persistence. All the model objects in DHIS 2 are POJOs, and persistence is handled by a set of stores (for example DataStore) with Hibernate implementations (HibernateDataStore).
Using Hibernate in DHIS 2 is simple: Just include a dependency to dhis-support-hibernate in your project. POJOs are mapped to tables in various hibernate mapping files (e.g. DataValue.hbm.xml), where one can choose to specify table and column names and types.
Resources
Books