| The modularisation of the JDK in Java 9 moved a number of Java EE APIs into a number of separate, deprecated modules. One of these APIs is JAXB upon which Hibernate depends. When using Java 9 or 10, this means that Hibernate does not work out of the box and either the java.xml.bind module needs to be added or a dependency on JAXB needs to be declared. Things have been taken a step further in Java 11 as it removes the deprecated modules. As a result, the only option on Java 11 is to add the necessary JAXB dependencies. This is cumbersome as you need to know that's what needs to be done, and then need to figure out the correct coordinates of these additional dependencies. We (the Spring Boot team) have already seen a number of users struggling with Hibernate on Java 9 and later and have an issue open to improve the situation. While we can probably work around the problem (possibly at the cost of bloating the classpath for users on Java 8) addressing it in Hibernate would make the improvement available to all. |