Goodbye Hibernate with Panache Next… welcome Quarkus Data Hibernate 🥳It’s already been a while since we introducedQuarkus Hibernate with Panache Next, and since then, we’ve decided tomove closer to the Jakarta Data standard, as wellas rename the module to Quarkus Data Hibernate.I’ll repeat the original disclaimer: this is a new extension, which is experimental, which means everythingabout it can (and probably will) change: the extension name, the package names, the class namesand even the API. We are releasing it because we feel it’s in a good shape to be tested and discussedby the community, and we hope to get better feedback before we commit to anything like names orAPI.Please report feedback either on Zulipor via GitHub issues.What changed since last time?Pivoted from the Panache 1Sort typeto the Jakarta Data Ordertype for sorting: https://github.com/quarkusio/quarkus/issues/53429Supported @Transactionalfor Hibernate Reactive transactions: https://github.com/quarkusio/quarkus/issues/47698Support non-blocking @Startup methods:https://github.com/quarkusio/quarkus/issues/50175The @Repositoryannotation is now optional on nested repositories: https://github.com/quarkusio/quarkus/issues/50178Added a codestart: https://github.com/quarkusio/quarkus/issues/51565Make sure the Hibernate Reactive dependency is optional:https://github.com/quarkusio/quarkus/pull/52265Deprecated the Parametersclass in favour of Map.of:https://github.com/quarkusio/quarkus/pull/52583Added upsertoperation: https://github.com/quarkusio/quarkus/pull/52574Make StatelessSession injectable for Hibernate Reactivehttps://github.com/quarkusio/quarkus/issues/47462Support security annotationson repositories: https://github.com/quarkusio/quarkus/issues/53623Support @InjectMockon repositories: https://github.com/quarkusio/quarkus/issues/53873And many other bug fixes.Need feedbackWe’re currently working on various issues, but we could especially use feedback on the following topics:PagingWe’re switching to Jakarta Data Page and PageRequest for paging, including using cursors. This one will introduce a newAPI on PanacheQuery for paging: https://github.com/quarkusio/quarkus/issues/53431 @Transactional void offsetPage() { PanacheBlockingQuery query = MyEntity_.managedBlocking().findAll(); List list = query.paging().offset(0, 10).list(); while (query.paging().hasNext()) { list = query.paging().next().list(); } } @Transactional void cursorPage() { PanacheBlockingQuery query = MyEntity_.managedBlocking().findAll(); List list = query.paging().cursored(0, 10).list(); while (query.paging().hasNext()) { list = query.paging().next().list(); } } @Transactional void limitPage() { PanacheBlockingQuery query = MyEntity_.managedBlocking().findAll(); List list = query.limiting().limit(10).list(); }NamesIn https://github.com/quarkusio/quarkus/issues/53145 we are considering moving:Our package name from io.quarkus.hibernate.panache to io.quarkus.data.hibernate (this one is pretty obvious)The PanacheEntity name to ManagedEntity (for entities backed by a stateful session), and RecordEntity orActiveRecord (for entities backed by a stateless session).The PanacheRepository name to… something that would go along with whatever names we pick for our entities 😬Please comment on the issue if you like this or think of anything better. But please read all the discussion first :)Automatic configuration of required annotation processorOn https://github.com/quarkusio/quarkus/pull/53901 we have a proof of concept that lets our Maven and Gradle buildsautomatically configure the required Hibernate Processor annotation processor, so that you can’t forget to add themto your builds.This raises questions about magic and compatibility with IDEs, so chime in if you have opinions about those.Let us knowWe’re still looking for feedback, and testers.Give it a try, read the documentation, and give us feedback either onZulipor via GitHub issues.