It is easy to overlook the relational database while working with the Java Persistence API (JPA), because it hides a lot of low-level persistence code. In reality, keeping an eye on relational database optimization concerns can help achieve maximum performance from JPA while keeping your persistence code agile. This session outlines strategies for tuning relational databases for JPA as well as adjusting JPA to best use relational databases.

The session covers several optimization techniques gleaned from practical applications, including doing optimal schema design, refactoring tables, doing effective indexing, fully utilizing database features, adjusting the domain model, making the right mapping choices, tweaking fetching strategies, utilizing native queries, tuning Java Persistence Query Language (JPQL), and reducing database load by caching. The session assumes intermediate knowledge of relational databases, SQL, and JPA.