升级到 Hibernate 5 后,提示有错误:java
org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;
完整的错误栈为:ide
java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map; at org.hibernate.cache.internal.EnabledCaching.<init>(EnabledCaching.java:77) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:33) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:24) at org.hibernate.service.spi.SessionFactoryServiceInitiator.initiateService(SessionFactoryServiceInitiator.java:30) at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:68) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:109) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:239) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)
若是你仅仅从错误信息,你可能看不出什么问题。ui
Google 搜索也找不到什么好的回答。通过咱们对源代码的分析和排查,咱们发现这是一个 JPA 版本不兼容的问题。hibernate
你的Hibernate 可能须要更高版本的 JPA,可是你的项目中只有低版本的 JPAorm
有关 JPA 的支持列表能够访问页面:https://hibernate.org/orm/releases/blog
请查看 JPA 的版本配置列表。get
根据咱们的项目状况,咱们须要使用 JPA 2.2,可是咱们没有在 Maven 中指定 JPA 致使了上面的错误。it