如何配置 Hibernate 以在 Karaf JPA 示例中工作?
Posted
技术标签:
【中文标题】如何配置 Hibernate 以在 Karaf JPA 示例中工作?【英文标题】:How do I configure Hibernate to work in Karaf JPA Example? 【发布时间】:2019-03-22 13:55:29 【问题描述】:我想了解这个Karaf JPA example。
当我按照说明添加功能并运行 eclipseLink 的捆绑包时,该示例可以正常工作。
但是,如果我尝试使用 Hibernate,它就不起作用。我不太了解 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:
(&(osgi.unit.name=booking-hibernate)
(objectClass=javax.persistence.EntityManager))
编辑 #2:我使用的是 JDK11 (11.0.2)。
谢谢, 乔恩
【问题讨论】:
希望您已经在BookingServiceImpl
中使用jpaTemplate
参数初始化了contructor
我没有对代码做任何修改——不过我会试试的。
【参考方案1】:
看来问题是JDK11。我已经迁移到 JDK8 并且它正在工作。
这是提示我的帖子:https://hibernate.atlassian.net/browse/HHH-12924
【讨论】:
以上是关于如何配置 Hibernate 以在 Karaf JPA 示例中工作?的主要内容,如果未能解决你的问题,请参考以下文章
您可以在不使用 JTA 的情况下在 OSGi 环境(如 Karaf)中使用 Hibernate 5.2 StatelessSession 吗?
如何让 Spring JPA、Hibernate 和 OSGi 发挥出色?