High-Performance Hibernate

Speaker: Vlad Mihalcea

Hibernate is the most popular JPA provider and knowing its inner-workings can make the difference between a high-performance enterprise application and one that barely crawls.

This presentation goes through the most common performance bottlenecks issues like exotic mappings, too much flushing, inappropriate queries, JDBC batch updates misuse, and suboptimal result set fetching.

Aside from common anti-patterns, I will also present some very useful Hibernate features like the enhanced identifier generators, caching strategies, and state-of-the-art connection management and monitoring.


I've been answering over 1200 questions about Hibernate on StackOverflow, and this made me realize that Hibernate is still a very difficult topic for many application developers.

For this reason, I decided to write 100 articles about Hibernate on my blog (http://vladmihalcea.com/tutorials/hibernate/), as well as a book about High-Performance Java Persistence (https://leanpub.com/high-performance-java-persistence).

  • what are the best identifier generators to use
  • what mappings are not suitable for a data-intensive application
  • how statement batching can be enabled and what can compromise its usage
  • flushing best practices
  • caching best practices and gotchas