Spring Data JPA: пример из Spring в действии не запускается - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь запустить пример из Spring в действии 5. STS показывает мне ошибку:

Ошибка запуска ApplicationContext. Для отображения отчета об условиях перезапустите ваше приложение с включенной отладкой. 2019-06-24 10: 47: 06.472 ОШИБКА 6300 --- [restartedMain] o.s.boot.SpringApplication
: Ошибка запуска приложения

org.springframework.beans.factory.BeanCreationException: ошибка создание компонента с именем entityManagerFactory, определенным в пути к классам ресурс [Орг / springframework / загрузки / Автоконфигурирование / ОРМ / JPA / HibernateJpaConfiguration.class]: Ошибка вызова метода init; вложенное исключение javax.persistence.PersistenceException: [PersistenceUnit: default] Невозможно собрать Hibernate SessionFactory; вложенное исключение org.hibernate.MappingException: не удалось получить конструктор для org.hibernate.persister.entity.SingleTableEntityPersister

Этот пример может получить там: GitHub - Spring в действии: Spring Data JPA

Вы можете мне помочь? Если нужны еще коды из примера, я могу скопировать сюда.

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Я пытаюсь воспроизвести вашу ошибку, я ловлю ту же самую

. Причина: org.hibernate.MappingException: Не удалось получить конструктор для org.hibernate.persister.entity.SingleTableEntityPersister

Я читаю комментарий Данные Spring JPA: пример из Spring in Action не запускается

Изменение

@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

Результат: в журнале консоли успешно выполняются приложения

Hibernate: вставьте в значения ингредиента (имя, тип, идентификатор) (?,?,?)

0 голосов
/ 24 июня 2019

Этот пример не работает с 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...