#java #hibernate #jpa #h2
#java #режим гибернации #jpa #h2
Вопрос:
Я хочу разобраться в этом примере Karaf JPA.
Когда я следую инструкциям по добавлению функций и запускаю пакеты для EclipseLink, пример работает правильно.
Однако, если я попытаюсь использовать режим гибернации, это не сработает. Я недостаточно хорошо знаю Hibernate / H2, чтобы понять, чего мне не хватает. Когда я запускаю feature:install karaf-jpa-example-provider-ds-hibernate
, я вижу это в журнале:
javax.persistence.PersistenceException: [PersistenceUnit: booking-hibernate] Unable to build Hibernate SessionFactory
diag
возвращает эту информацию:
Status: Waiting
Declarative Services
org.apache.karaf.examples.jpa.provider.ds.hibernate.BookingServiceImpl (1) missing references: jpaTemplate
Установки karaf и H2 являются новыми и пустыми. Я подозреваю, что в H2 мне нужно что-то сделать, но у меня нет опыта работы с этой базой данных.
Редактировать: используя blueprint
пример, снова EclipseLink работает, а Hibernate — нет. Выполнение этой команды: feature:install karaf-jpa-example-provider-blueprint-hibernate
вызывает эту ошибку в журнале:
ERROR [features-2-thread-1] Bundle org.apache.aries.jpa.container [72] EventDispatcher: Error during dispatch. (javax.persistence.PersistenceException: [PersistenceUnit: booking-hibernate] Unable to build Hibernate SessionFactory)
javax.persistence.PersistenceException: [PersistenceUnit: booking-hibernate] Unable to build Hibernate SessionFactory
И это диагональ:
Missing dependencies:
(amp;(osgi.unit.name=booking-hibernate)
(objectClass=javax.persistence.EntityManager))
Правка # 2: я использую JDK11 (11.0.2).
спасибо, Джон
Комментарии:
1. Надеюсь, вы инициализировали параметр
contructor
withjpaTemplate
вBookingServiceImpl
2. Я не вносил никаких изменений в код — я все же попробую это.
Ответ №1:
Похоже, проблема в JDK11. Я перешел на JDK8, и он работает.
Это сообщение, которое дало мне ключ к пониманию: https://hibernate.atlassian.net/browse/HHH-12924