In Java werden Daten in Form von Objekten verwaltet. Relationale Datenbanken legen Daten in Tabellen ab. Die beiden Konzepte sind grundlegend verschieden, sodass objektorientierte Programmiersprachen wie Java und relationele Datenbanken als nicht kompatibel gelten. Um das Problem zu lösen, werden die im Java Programm vorhandenen Klassen auf Datanbanktabellen abgebildet. Ein Objekt entspricht einer Ziele, während ein Attribut einer Tabellenspalte entspricht. Dieser Vorgang wird als objektrelationales Mapping (OR-Mapping) bezeichnet. 2010 wurde diese Vorgehensweise zum Java Standard (JPA Standard - Java Persistence API). Anwendungen, die OR-Mapping durchführen werden als JPA-Provider oder OR-Mapper bezeichnet. RapidClipse verwendet standardmäßig Hibernate als JPA-Provider.

Hinweis: JPA (Java Persistence API) ist der Standard. Ein JPA-Provider oder OR-Mapper ist eine reale Java Anwendung, die den JPA-Standard umsetzt, z.B. Hibernate, OpenJPA, EclipseLink. RapidClipse verwendet standardmäßig Hibernate.

Durch den Einsatz von Hibernate können Entwickler und Anwendung zur Laufzeit objektorientiert auf die Daten einer relationalen Datenbank zugreifen. Datenbankzugriffe werden nicht mehr in SQL sondern in vollständig Java formuliert. Dafür stehen dem Entwickler verschiedene Java APIs zur Verfügung, z.B.

Erst zur Laufzeit werden die SQL Statements passend für die aktuell angebundene Datenbank automatisch von Hibernate generiert und an die Datenbank versendet. Datenbankanwendungen die mit Hibernate realisiert werden sind deshalb datenbankunabhängig. Aus Kompatibilitätsgründen können spezielle Datenbankfunktionen mit JPA nicht genutzt werden. Es lassen sich jedoch auch native SQL Statements in Form von SQL-Strings absetzen und somit alle Stärken und Fähigkeiten einer Datenbank nutzen. Die Datenbankunabhängigkeit geht dadurch jedoch verloren und die Verwendung von SQL-Strings hat erhebliche Nachteile.