In the world of Java, one of the most popular and widely used frameworks is Hibernate. Hibernate is an ORM, or Object Relational Mapper, that allows developers to map Java objects to relational database tables. It is a valuable tool that all Java developers should know how to use. The problem is, learning Hibernate can be difficult. Hibernate is a very large framework and there are many important concepts to understand to use it effectively. This course is designed to make getting started with Hibernate as easy as possible and focus on the most important things you need to know. We start off this course by learning a bit about Hibernate and how it works, and then see how to get it setup with a real MySQL database installation. After that, we learn the very basics of mapping, which is one of the most important things to understand about Hibernate. I'll show you how to create a basic mapping for a Java object to a relational table and explain to you how the mapping works. But most real world applications have more complex mapping that often trips up new developers and experienced developers alike. So, we'll also cover some of the complex mapping situations like mapping collections and different relational mappings like one-to-many and many-to-one. Once you've learned how to map you objects, you'll want to know how to query them, so I'll show you how to do this using Hibernate's built in HQL and using a more object oriented approach with the Criteria API. Finally, we'll wrap things up by taking a brief tour of some of the more advanced features like caching and interceptors. So, if you are wanting to learn how to use Hibernate, or if you've been struggling through using Hibernate in an existing application, but never really understood what was going on, this course will give you the knowledge you need to feel confident about how Hibernate works and how to use it.