In this chapter, we’ll explore Hibernate’s solution for the fundamental ORM problem of navigation, as introduced in section 1.2.5: the difference in how you access data in Java code and within a relational database. We’ll demonstrate how to retrieve data from the database and how to optimize this loading.