【问题标题】:hibernate-ogm - 'cassandra_experimental' is no valid datastore provider short namehibernate-ogm - 'cassandra_experimental' 不是有效的数据存储提供程序短名称
【发布时间】:2015-07-21 17:52:58
【问题描述】:

我刚刚为多个数据库编写了一个测试程序。 它基于 hibernate vor 关系数据库和用于 NoSQL 数据库的 hibernate-ogm。

目前我支持 mysql、postgresql 和 MongoDB。 现在我想试试 cassandra 驱动程序,但我得到了错误:

'cassandra_experimental' is no valid datastore provider short name. Valid values are: MAP, INFINISPAN, EHCACHE, MONGODB, NEO4J_EMBEDDED, COUCHDB_EXPERIMENTAL

我的 maven 项目中的依赖列表:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.hibernate.ogm</groupId>
            <artifactId>hibernate-ogm-bom</artifactId>
            <version>4.2.0.Final</version>
        </dependency>

    </dependencies>
</dependencyManagement>

<dependencies>

    <dependency>
        <groupId>org.jboss.jbossts</groupId>
        <artifactId>jbossjta</artifactId>
        <version>4.16.6.Final</version>
    </dependency>



    <!-- Hibernate Search -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-search-orm</artifactId>
        <version>5.0.1.Final</version>
    </dependency>

    <!-- Use this for MongoDB -->
    <dependency>
        <groupId>org.hibernate.ogm</groupId>
        <artifactId>hibernate-ogm-mongodb</artifactId>
        <version>4.1.3.Final</version>
    </dependency>


    <!-- cassandra -->
    <dependency>
        <groupId>org.hibernate.ogm</groupId>
        <artifactId>hibernate-ogm-cassandra</artifactId>
        <version>4.2.0.Final</version>
    </dependency>

    <!-- mysql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.36</version>
    </dependency>

    <!-- postgresql -->
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.4-1200-jdbc41</version>
    </dependency>

    <!-- Testing -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.easytesting</groupId>
        <artifactId>fest-assert</artifactId>
        <version>1.4</version>
        <scope>test</scope>
    </dependency>
</dependencies>

我使用hibernate文档docs.jboss.org

有人已经使用过 cassandra 并且可以在这里提供一些建议吗?

感谢任何回答:)

PS:更多信息: 我在虚拟机中使用 Windows 7 客户端和 ubuntu 14.04 服务器。在我的客户端上,我使用 eclipse kepler 来编写我的程序。

版: 当我删除 pom.xml 中的版本时,我正在寻求错误消息:

mvn eclipse:eclipse
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] 'dependencies.dependency.version' for org.hibernate.ogm:hibernate-ogm-mongodb:jar is missing. @ line 49, column 15
[ERROR] 'dependencies.dependency.version' for org.hibernate.ogm:hibernate-ogm-cassandra:jar is missing. @ line 56, column 15
 @
 [ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project org.hibernate.demos:History_Log_Test:1.0-SNAPSHOT (C:\User
s\MOTZA\Documents\__BA\Bachelor-Thesis\ws\History_Log_Test\pom.xml) has 2 errors

[ERROR]     'dependencies.dependency.version' for  org.hibernate.ogm:hibernate-og
m-mongodb:jar is missing. @ line 49, column 15
[ERROR]     'dependencies.dependency.version' for org.hibernate.ogm:hibernate-og
m-cassandra:jar is missing. @ line 56, column 15
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildin
gException

【问题讨论】:

    标签: java cassandra hibernate-ogm


    【解决方案1】:

    您能否删除 hibernate-ogm-mongodbhibernate-ogm-cassandra 依赖项的版本,您将从 BOM 中获取它们:

    <dependency>
        <groupId>org.hibernate.ogm</groupId>
        <artifactId>hibernate-ogm-mongodb</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.hibernate.ogm</groupId>
        <artifactId>hibernate-ogm-cassandra</artifactId>
    </dependency>
    

    您为 hibernate-ogm-mongodb 指定 4.1.3,也许这会引入旧版本的 hibernate-ogm-core。如果仍然无法正常工作,则需要有关您的环境的更多详细信息:这是 Java SE 还是在 WildFly 等 JJ 服务器上?

    【讨论】:

    • 感谢您的回答,当我删除版本时,我在构建项目时遇到错误。对我来说,它从未与 maven 插件一起使用,所以我使用“mvn eclipse:eclipse”通过控制台来构建一个 eclipse 项目。
    • 感谢@Gunnar,这就是问题所在。我刚刚为 mongoDB 使用了 4.2.0 版本,它工作了 :)
    • 如果省略实际依赖项中的版本,会出现什么错误?如前所述,由于将 BOM 导入您的依赖项管理块,因此不需要它们。
    • 我刚刚看了看。删除版本后,我会立即收到我在上一个问题中添加的消息。
    【解决方案2】:

    我怀疑您使用的不是最新的 Hibernate OGM 版本。

    Cassandra 实验性支持从 4.2 版本开始提供。

    这是数据存储提供者名称更改为 CASSANDRA_EXPERIMENTAL 的提交:6fd5777

    【讨论】:

    • 感谢您的提示,我没有使用最新的版本,但更改后问题仍然存在。我放入了我的 pom 文件的依赖列表,也许这有帮助?
    猜你喜欢
    • 2014-10-10
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2019-02-02
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多