The members of each team are different, and so are their knowledge and experience with Hibernate and Spring Data JPA.

That’s why I’m offering customized on-site and online workshops in German and English. Each workshop is specifically tailored to the needs of your team.

You can either select and adapt one of my prepared workshops or choose your own topics to design a customized workshop. And don’t worry if you want to learn about something that’s not included in my prepared curricula. I’m happy to design custom lectures for your training event so that it perfectly fits the needs of your team.

So, don’t wait any longer. Let’s get your team to the next level.

Popular Workshops

The following curricula are a good fit for teams who want to focus on Hibernate’s advanced features or performance optimizations.

Persisting data with JPA and Hibernate is so easy that you can learn it within a few hours. But the troubles begin, as soon as the application needs to support a huge amount of data or you have to guarantee very short response times.

You can fulfill these requirements with advanced JPA features, and on top of that, Hibernate offers several proprietary features to support further optimizations. Some examples are selecting the right fetch strategy, using different caches and performing bulk operations.

During this workshop, I will use lots of examples to show you when and how to use these features to avoid performance issues and fulfill challenging performance requirements.

Program

During this training, you will work with lots of examples to learn more about Hibernate’s advanced features and concepts, which enable you to:

  • Understand typical reasons for performance problems and how you can find them before you deploy them to production.
  • Create efficient entity mappings by
    • Choosing the best strategy to generate primary keys
    • Selecting the optimal fetching strategy, and
    • Using byte code enhancement.
  • Optimize read operations by
    • Optimizing queries,
    • Implementing use case specific fetching strategies, and
    • Using different caches to avoid redundant database queries.
  • Use database functions and stored procedures to preprocess your data.
  • Improve the performance of your write operations by
    • executing write operations in batches and
    • using bulk operation to change or remove huge data sets.
  • Choose the most efficient strategy to manage concurrent operations.

Goals

After you participated in this training, you will be able to identify and fix performance problems before they cause problems in production. You will know different strategies and features to solve these problems so that you can implement an efficient, high-performance data access layer with JPA and Hibernate.

Target Audience

Software developers and architects who are already familiar with JPA and Hibernate concepts.

Duration

3 days

Hibernate makes it easy to persist a few simple entities in your database. But for most applications, you need a lot more than that. You need to implement complex business requirements that require advanced mappings, dynamically created queries and application- or database-specific data types. You might even need to process life cycle events or support multi-tenancy.

You can easily do all of that with Hibernate, and in this training, I will show you how.

Program

During this training, you will work with lots of examples to learn about Hibernate’s advanced features and concepts which enable you to:

  • create complex, advanced mappings,
  • use the Criteria API to create dynamic, type-safe database queries,
  • choose the optimal strategy to map the inheritance hierarchies used in your domain model to relational database tables,
  • execute custom code whenever Hibernate triggers a life cycle event,
  • support database-specific and custom data types, and
  • use Hibernate’s multi-tenancy support.

Goals

After you participated in this training, you will be able to use Hibernate’s advanced features to implement complex business requirements and to build a robust and maintainable persistence layer.

Target Audience

Software developers and architects who are already familiar with basic JPA and Hibernate concepts.

Duration

3 days

Spring Data JPA seamlessly integrates JPA into the Spring stack and provides many features that make JPA easier to use and improve developer productivity. That’s why many teams prefer using Spring Data JPA over plain JPA or any of its implementations.

During this workshop, I will use many examples to show you how to get the most out of Spring Data JPA. I will show you which features simplify the development of your use cases and which often cause trouble in production.

Program

During this training, you will work with lots of examples to learn more about Spring Data JPA’s advanced features and concepts, which enable you to:

  • Implement easy-to-use repositories by
    • Extending Spring Data JPA’s standard repositories,
    • Building project-specific standard repositories, and
    • Adding your own method implementations to your repository.
  • Read data by
    • Letting Spring Data JPA derive the statement from a method name,
    • Defining your own JPQL or native query statement,
    • Finding entities that match an example,
    • Calling a stored procedure,
    • Defining a query based on a specification,
    • Using pagination and scrolling on huge result sets,
    • Fetching associated entities, and
    • Adjusting the projections to your use case.
  • Create and update your database schema using:
    • Spring Boot,
    • Flyway, or
    • Liquibase.

Goals

After participating in this training, you can use Spring Data JPA’s repositories to read and write your data efficiently. You will understand the different query features with their strengths and weaknesses and know when to use which one.

You will also be familiar with the most popular options to create and update your database schema.

Target Audience

Software developers and architects who are already familiar with JPA’s and Hibernate’s concepts and want to use them with Spring Data JPA.

Duration

2 days

Wouldn’t it be great if you could focus on application logic during development instead of bothering with JDBC-based database accesses? What if you could read and edit your data via properties of Java objects without having to write an SQL statement?

You can do that using JPA, one of the most popular Java specifications. The implementations of the JPA standard map database tables to entity classes using annotations. These can then be used to read records from the database and convert them to Java objects, and to automatically store changes in the database.

During this workshop, I will use lots of examples and exercises to show you how to do all of this and why you should still know SQL.

Program

At the beginning of the training, I will explain all the basic terms, the required dependencies and configurations of JPA.

Building on this, you will model your first entities and use them to create, edit and delete records in your database. We will especially focus on the following topics:

  • Using annotations to map entities with basic properties,
  • Understanding JPA’s lifecycle model which automatically saves new entities, persists changes, and deletes entities,
  • Using annotations to model relationships between entities.

After you learned about basic JPA mappings, we will take a closer look at JPQL. This is an SQL-like query language that enables you to define queries based on your entities.

Goals

The participants learn to create their own object-relational mappings and to use them to save, read and change records in a relational database.

After successfully completing this training, participants can create simple persistence layers based on JPA and work in teams that already have a grown, more complex persistence layer.

Target Audience

Java developers without experience with JPA, Hibernate and EclipseLink.

Duration

2 days

Are you looking for a different training?

Or maybe you want a mix of the Advanced Training and the Performance Tuning Training with just a few additional topics?

No problem, please send me a message and tell me about it. I’m happy to suggest a custom training that fits your team perfectly.

Looking for an open workshop?

Let’s talk about your Workshop

Tell me more about your team and the workshop you’re looking for.

I will get back to you within 24 hours to discuss the details of your customized training workshop.

What others say about my workshops


Perfect balance between theory, examples, and exercises!

I refreshed my Hibernate knowledge and learned to use Flyway and jOOQ – all in one day.

Thorben has found the perfect balance between theory, examples and hands-on exercises. I left the workshop with an understanding of the frameworks, and with working code examples.
Florian Specker
Product Owner at Swisscom AG

Leicht verständliche Lösungen für Performanceprobleme!

Seit geraumer Zeit beobachte ich nun in etlichen Projekten immer wieder diverse Performanceprobleme beim Einsatz von Hibernate & Co.

Thorben Janssen schafft es, in seinem Seminar mit tiefem Verständnis die am häufigsten gemachten Fehler zu benennen und Lösungsmöglichkeiten aufzuzeigen. Dies gelingt ihm auf für Frontent- als auch Backendentwickler und DBAs gleichermassen verständliche, eindrucksvolle Art.

Ich kann jedem Anwender Thorbens Seminar nur auf das Wärmste empfehlen.
Steffen Uhden
Leiter Competence-Center Datenbanken at ITinera project & experts

Finally, I learned how to use criteria queries!

Great hands-on workshop about Hibernate’s advanced features by Thorben Janssen.

Finally, I learned how to use criteria queries and stored procedures with Hibernate.
Gregor Karl Frey
Chief Development Architect at SAP

About me

My name is Thorben Janssen. I’m a consultant, trainer, and the author of the Amazon bestselling book Hibernate Tips – More than 70 solutions to common Hibernate problems.

For the last 20+ years, I have been using Spring Data JPA, Hibernate, and JPA in all kinds of projects, from small ones with very aggressive timelines to huge projects that had to handle thousands of users.

The requirements of these applications were very different, and I learned that Hibernate provides good solutions for all of them. You just have to understand the features with their advantages and disadvantages.

I look forward to showing you how to build high-performance persistence layers.