Based on new information, I am rephrasing my question, keeping the original text below for reference:
When switching to Hibernate 6, I got requirements for new packages to include. I do not understand why those packages are needed, so I need further information what they do. Doing a search on Google or Stack Overflow mostly ends with "just add the package".
Questions (see below for answers):
Original Text:
I am using functionality as specified by JPA with Hibernate as implementation. Thus, I am including jakarta.persistence-api and jakarta.validation-api, as well as the required Hibernate packages.
Up to version 5.6.10, including hibernate-core-jakarta seemed to be the right thing to do. Using that package, everything worked out-of-the-box.
I have now switched to Hibernate 6.1.2. Here, hibernate-core-jakarta does not exist anymore. Thus, I am including hibernate-core now. Based on error messages I got, I also added hibernate-validator 7.0.5.Final and jakarta.el-api 5.0.1.
Now, things seem to work. Still, I am wondering: Why was hibernate-core-jakarta removed? Is the solution I found the correct one, or is there a hidden problem now?
Edit: based on some more things I read I can probably better phrase what is puzzling me:
You can look/debug into org.hibernate.cfg.beanvalidation.BeanValidationIntegrator
to understand why bean validation was activated for your application and hence requires an implementation to be available. Usually, the implementation is only required when the API is available on the class path, so if you don't want to use jakarta.validation
, just make sure it's not part of your dependencies.
jakarta.el-api
is then a transitive requirement of jakarta.validation
, so it seems the root of your issue is that you somehow have a dependency on the validation api.