0

我正在尝试将 JPA OGM 与 MongoDB 一起使用。

我已将最新版本的 Hibernate (5.3.0.CR1) 添加到 WildFly 11 模块文件夹:

/usr/local/Cellar/wildfly-as/11.0.0.Final/libexec/modules/system/layers/base/org/hibernate/5.3.0.CR1

我已将 Hibernate 版本添加到我的 persistence.xml

<persistence-unit name="NOTiFYwellMongoDBPersistenceUnit" transaction-type="JTA">
      <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>

        <properties>
            <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.3.0.CR1"/>
            <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAS"/>
            <property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/>
            <property name="hibernate.ogm.datastore.grid_dialect" value="org.hibernate.ogm.datastore.mongodb.MongoDBDialect"/>

        <property name="hibernate.ogm.datastore.database" value="notifyWellDB"/>
        <property name="hibernate.ogm.mongodb.host" value="127.0.0.1"/>
    </properties>
</persistence-unit>

当我构建 EAR 并且必须不断添加来自 Hibernate 和 OGM 的各种 JAR 以摆脱“类未找到异常”时。

我现在被困在:

错误 [org.jboss.msc.service.fail](ServerService 线程池 -- 65)MSC000001:无法启动服务 jboss.persistenceunit。“NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit”:org.jboss.msc.service。服务 jboss.persistenceunit 中的 StartException。“NOTiFYwell.ear/NOTiFYwellJAR.jar#NOTiFYwellMongoDBPersistenceUnit”:java.util.ServiceConfigurationError:org.hibernate.boot.model.TypeContributor:提供者 org.hibernate.type.Java8DateTimeTypeContributor 不是子类型

为什么不需要从模块文件夹中提取所需的 JAR 并由“类加载器”自动加载,而不必手动将它们添加到 EAR?

4

2 回答 2

1

首先,Hibernate OGM 5.3 与 ORM 5.2 兼容,而不是 ORM 5.3(ORM 5.3 尚未发布)。

在此处查看我们的兼容性矩阵:http: //hibernate.org/ogm/releases/

然后我们有完整的文档部分解释如何在 WildFly 上使用 OGM。请参阅https://docs.jboss.org/hibernate/stable/ogm/reference/en-US/html_single/#ogm-configuration-jbossmodule。请注意,文档中有一个错误,它针对的是 WildFly 11,而不是 10。我们将在下一个版本中修复它。

WildFly 是一个模块化环境,因此类并非随处可用。这就是为什么我们精心设置了您可以重复使用的模块。

更新:我创建了https://hibernate.atlassian.net/browse/OGM-1414来跟踪文档问题。

于 2018-03-01T13:43:46.670 回答
-1

请将其提取放入 ${wildflyHome}/modules 中。

然后在你的 pom.xml 中加入以下标签:

<dependency>
    <groupId>org.hibernate.ogm</groupId>
    <artifactId>hibernate-ogm-mongodb</artifactId>
    <version>5.1.0.Final</version>
    <scope>provided</scope>
</dependency>
于 2018-07-11T04:24:41.477 回答