Onze applicaties zijn geschreven in Java en onze data staan in SQL databases. De laag die databases vertaalt naar Java objecten is de Object-Relationele Mapping laag, ook wel aangeduid als Java Persistence API, en ook bekend als Hibernate. Het doel is om de annotaties die op entiteiten zitten te begrijpen en hoe dat zich verhoudt tot tabellen. JPA criteria, HQL en andere zaken komen later aan bod.