In this chapter, we covered many ways of fetching datasets from the database. You can use HQL, JPA, or even native SQL. We also showed you how to use the criteria API and further apply filters to collections. We also discussed fetching strategies and when each should be used. Finally, we discussed pagination, which is almost always a functional requirement.
In the next chapter, we will discuss the Hibernate cache, its architecture, strategies, and implementation.