Thorben Janssen joins Marco to talk about the hidden power (and pain) of Java persistence frameworks. Hibernate, JPA, Spring Data, jOOQ: which one should you really use in 2025? From learning SQL the right way to surviving microservices madness, this episode is packed with hard-won lessons from decades of real-world Java work.
💡 Topics in this episode:
- Hibernate vs JPA vs Jakarta Data
- When to use jOOQ or Exposed
- The biggest persistence misconceptions
- Common performance traps (and how to avoid them)
- Monoliths, microservices, and “real” architecture decisions
- How AI might change the way we write queries
⏱️ Timestamps:
(00:00) Introduction: From painful early learning to AI-generated annotations
(01:02) Meet Thorben Janssen – consultant and trainer for Java persistence
(02:11) Early days of Hibernate and the horror of EJB2
(04:33) Main challenges in database access today
(06:18) Too many tools: Hibernate, JPA, Spring Data, jOOQ – how to choose
(08:15) Why understanding ORM internals really matters
(09:20) How juniors should start learning persistence
(10:59) SQL skills – why you still need them even with Hibernate or Spring Data
(13:48) SQL essentials for beginners: what to learn first
(16:01) Why Hibernate became the dominant persistence tool
(18:57) Hibernate vs JPA – is there really a difference?
(20:35) Hibernate API vs Jakarta Persistence API – which to use
(22:10) Criteria API and DSLs for queries
(23:43) Strengths and weaknesses of Spring Data JPA
(27:26) Jakarta Data vs Spring Data JPA
(30:53) Stateful vs stateless data models
(33:21) jOOQ, Exposed, and the SQL-centric approach
(37:41) Mixing Hibernate and Exposed in one project
(39:33) Where Spring Data JDBC fits in
(43:24) Starting a new project in 2025 – what stack to choose
(45:24) The role of experience and not chasing every new trend
(48:50) Monoliths, microservices, and common pitfalls
(52:14) Database design vs service design – where to start
(59:02) Common database performance issues
(01:03:10) Why developers should collaborate with DBAs
(01:06:20) Caching problems: when caches make things worse
(01:09:29) Reactive database access – what happened to the hype
(01:12:33) The "perfect" persistence framework – does it exist?
(01:14:40) AI-assisted development and query generation
(01:19:43) The AI hype cycle and developer reality
(01:20:17) Other persistence models worth learning (graph, full-text search)
(01:21:43) Full-text search and graph databases in practice
(01:23:25) Integrating AI into applications
(01:24:38) Thorben's unpopular opinions
(01:26:04) Giveaway announcement
(01:27:06) Rapid-fire round: Paderborn, joins, and lazy loading
(01:30:00) Closing remarks
🎁 Giveaway: What’s the highest number of SQL queries you’ve ever seen one workflow generate? Best answers win JetBrains merch or IDE licenses.
New episodes every other Wednesday. Subscribe for deep, developer-focused conversations.📺 Watch on YouTube: https://youtu.be/t4h6l-HlMJ8
Information
- Show
- FrequencyUpdated Biweekly
- PublishedOctober 29, 2025 at 3:00 PM UTC
- Length1h 30m
- Season1
- Episode5
- RatingClean
