ORM, 20 years later by Gavin King

Поділитися
Вставка
  • Опубліковано 30 тра 2024
  • Hibernate is the preeminent object/relational mapping solution, and is still immensely popular two decades after it was first introduced to the Java community.
    The Hibernate team recently had an opportunity to ask what Hibernate got wrong, and what could be done about it. Answers to those questions were realized in Hibernate 6, which marks a significant break with the past.
    Simultaneously, the needs of Quarkus pushed the team to create Hibernate Reactive, the first non-blocking ORM.
    In this session, Gavin King will talk about Hibernate 6 and Hibernate Reactive, and of his experience returning to the world of data access after a long absence.
    GAVIN KING
    Gavin King is a Distinguished Engineer at Red Hat. He’s the creator of Hibernate, a popular object/relational persistence solution for Java, and of the Ceylon programming language. He contributed to the design of JPA and EJB 3.0, and was the spec lead and author of the CDI specification. He coauthored Java Persistence with Hibernate. Gavin has recently worked on Hibernate 6 and Hibernate Reactive.
    ------------------------------------------------------------
    INTRO
    * visuals & editing by @Mercator
    * music : Avocado by Ephixa
  • Наука та технологія

КОМЕНТАРІ • 14

  • @flemlion13
    @flemlion13 Рік тому

    The title really threw me back to my start with Java 1.1 when we wrote our ORM from scratch, which is from the previous millenium. Annotations not yet being a thing, our mapping meta-data was stored in the database, something I haven't really come across much after.

  • @rydmerlin
    @rydmerlin Рік тому +5

    I want him to start every presentation asking the audience how many have had to debug hibernate classes. Analytical functions aren’t in HQL are they? What about support for doing criteria like queries over Rest?

    • @GavinKing
      @GavinKing Рік тому +6

      Hi, if you watch the talk, you’ll find I spend some time discussing how debugging can be tricky, and at least one way to make it a bit easier.
      I also have a slide where I mention that in Hibernate 6 we added support for ordered set aggregate functions and window functions to HQL!
      OTOH I don’t think Hibernate needs a new (json based??) query language specifically for programs using REST.

    • @rydmerlin
      @rydmerlin Рік тому

      @@GavinKing when you have proposals to replace all database access that’s done with rich sql with restful apis what do you do?

    • @sarabwt
      @sarabwt Рік тому

      @@rydmerlin GraphQL if you have to expose the API to the world. If you are talking about service to service, then use rest and return specific results needed by the service.

    • @concernedcitizen1729
      @concernedcitizen1729 Рік тому +1

      @@rydmerlin Tell them know no.

  • @kenyee88
    @kenyee88 Рік тому +1

    How well does Hibernate Reactive work with Kotlin Coroutines? The old Hibernate had issues with transactions because Coroutines can resume on different threads so it was safer not to use Coroutines with non-reactive Hibernate.

  • @matijacvrk8299
    @matijacvrk8299 Рік тому

    the startup vs build time kinda points towards querydsl, doesn't it? 😉

  • @sapito169
    @sapito169 Рік тому +2

    hibernate work well when you do entity first with auto generatio
    but the most of the time dba speacking with dba is worst than negotiate with talibans

    • @GavinKing
      @GavinKing Рік тому +2

      In my opinion: if you learn to speak the DBA's language, and value their concerns and feedback (because their concerns are actually important) you will find them to usually be quite un-taliban-like.

  • @praveens2272
    @praveens2272 2 місяці тому

    Why have you invented hibernate man, we are debugging hibernate code every single day. No control over what data entities fetch from database. My life is simple with the plain SQL queries. Now we are going to use JOOQ which resembles like SQL.

  • @camily3d95
    @camily3d95 Рік тому

    If you use DDD and have modularized app. Dont use hibernate