【问题标题】:Spring Data JPA: Example from Spring in Action don't runSpring Data JPA:Spring in Action 中的示例不运行
【发布时间】:2019-11-05 23:53:21
【问题描述】:

我尝试从 Spring in action 5 开始一个示例。STS 向我显示错误:

启动 ApplicationContext 时出错。显示条件报告 在启用“调试”的情况下重新运行您的应用程序。 2019-06-24 10:47:06.472 错误 6300 --- [restartedMain] os.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

你能帮帮我吗?如果还需要示例中的代码,我可以在这里复制。

【问题讨论】:

标签: java spring hibernate spring-boot jpa


【解决方案1】:

此示例不适用于 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>

【讨论】:

  • 谢谢!你能向我解释一下我应该改变它使用 Java > 8 运行吗?如果我在 11 上更改 1.8 就足够了吗?
【解决方案2】:

我尝试重现你的错误,我发现了同样的错误

原因: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)我使用的是JDK 12。添加依赖

<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.25.0-GA</version>
</dependency>

(2) 程序参数

--illegal-access=ignore

结果:在控制台日志中,应用程序运行成功

休眠:插入成分(名称、类型、id)值(?、?、?)

【讨论】:

  • 只是为了您的兴趣:Spring Boot 2.0.x 不支持 Java 11。这就是问题的原因
猜你喜欢
  • 1970-01-01
  • 2011-04-24
  • 2018-01-23
  • 2012-03-05
  • 2016-02-19
  • 1970-01-01
  • 2012-03-22
  • 2012-09-17
  • 1970-01-01
相关资源
最近更新 更多