我尝试在操作5中从Spring开始示例。STS向我显示错误:
启动ApplicationContext时出错。显示条件报告 在启用“调试”的情况下重新运行您的应用程序。 2019-06-24 10:47:06.472 错误6300 --- [restartedMain] o.s.boot.SpringApplication
:应用程序运行失败org.springframework.beans.factory.BeanCreationException:错误 在类路径中创建名称为“ entityManagerFactory”的bean 资源 [org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]: 调用init方法失败;嵌套异常为 javax.persistence.PersistenceException:[PersistenceUnit:默认] 无法建立Hibernate SessionFactory;嵌套异常为 org.hibernate.MappingException:无法获取构造函数 org.hibernate.persister.entity.SingleTableEntityPersister
此示例可能会在此处接收:GitHub - Spring in action: Spring Data JPA
你能帮我吗?如果还需要示例代码,我可以在此处复制。
答案 0 :(得分:0)
此示例无法在Java> 8上运行。
您必须使用Java 8来直接运行它。
Spring Boot 2.0.x不支持Java 11。
您应该将示例升级到2.1.6
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
答案 1 :(得分:0)
我尝试重现您的错误,我也发现了同样的情况
由于:org.hibernate.MappingException:无法获取构造函数 org.hibernate.persister.entity.SingleTableEntityPersister
我读了评论Spring Data JPA: Example from Spring in Action don't run
更改
@NoArgsConstructor(access=AccessLevel.PRIVATE, force=true)
到
@NoArgsConstructor(access=AccessLevel.PUBLIC, force=true)
不能解决问题。保持原始状态。
解决方案:
(1)我正在使用JDK12。添加依赖项
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.25.0-GA</version>
</dependency>
(2)程序argumnet
--illegal-access=ignore
结果:在控制台日志中,applicaton运行成功
休眠:插入成分(名称,类型,id)值(?,?,?)