简体   繁体   English

Orientdb:创建新的Graph数据库

[英]Orientdb: Create new Graph database

I'm trying to create a new instance of OrientGraph database, as follows: 我正在尝试创建OrientGraph数据库的新实例,如下所示:

OrientGraph graph = new OrientGraph("local:C:/temp/graph/db");
graph.create(); //BUT no create method!!

anyhow, while sticking with the manual and do it with ODatabaseDocumentTx like: 无论如何,在坚持使用手册并使用ODatabaseDocumentTx执行此操作时:

db = new ODatabaseDocumentTx("plocal:c:/orientdb/db");
db.create();
....
db.shutdown();

then I want to get a session like: 然后我想得到一个像这样的会话:

OrientGraphFactory factory = new OrientGraphFactory("plocal:c:/orientdb/db", "admin", "admin");
OrientGraphNoTx g = factory.getNoTx();
try
{

}
finally
{
    g.shutdown();
}

I got the following exception: 我得到以下异常:

java.lang.IncompatibleClassChangeError: Expected static method     com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.checkForGraphSchema(Lcom/orientechnologies/orient/core/db/document/ODatabaseDocumentTx;)

How Can I create a new graph database??? 如何创建新的图形数据库???

Thank you. 谢谢。

First, you should not use the "local" engine anymore, it is deprecated (your first example). 首先,您不应再使用“本地”引擎,不推荐使用它(您的第一个示例)。 Secondly, the way an OrientGraph must be created is clearly documented, see http://www.orientechnologies.com/docs/last/orientdb.wiki/Graph-Factory.html 其次,必须创建OrientGraph的方式,请参见http://www.orientechnologies.com/docs/last/orientdb.wiki/Graph-Factory.html

The complete example which should work: 应该有效的完整示例:

@Test
public void testNoTx() {
    // start with a non existing database
    final OrientGraphFactory factory = new OrientGraphFactory(
        "plocal:" + DB_DIR, "admin", "admin");
    assertFalse(factory.exists());        
    try {
        OrientGraphNoTx g = factory.getNoTx();
        // database is auto created
        assertFalse(g.isClosed());
        assertFalse(g.isRequireTransaction());
    } finally {
        // this also closes the OrientGraph instances created by the factory
        // Note that OrientGraphFactory does not implement Closeable
        factory.close();
    }
}

Finally, your reported error indicates a set of inconsistent jar files. 最后,您报告的错误表示一组不一致的jar文件。 You should: 你应该:

Needed dependencies: 需要的依赖项:

- com.orientechnologies:orientdb-graphdb:jar:2.0-M2:compile
  +- com.orientechnologies:orientdb-core:jar:2.0-M2:compile
  |  +- org.xerial.snappy:snappy-java:jar:1.1.0.1:compile
  |  +- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-  lru:jar:1.4:compile
  |  +- net.java.dev.jna:jna:jar:4.0.0:compile
  |  \- net.java.dev.jna:jna-platform:jar:4.0.0:compile
  \- com.tinkerpop.blueprints:blueprints-core:jar:2.6.0:compile
     +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.3:compile
     |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.3:compile
     |  \- com.fasterxml.jackson.core:jackson-core:jar:2.2.3:compile
     +- com.carrotsearch:hppc:jar:0.6.0:compile
     \- commons-configuration:commons-configuration:jar:1.6:compile
        +- commons-collections:commons-collections:jar:3.2.1:compile
        +- commons-lang:commons-lang:jar:2.4:compile
        +- commons-digester:commons-digester:jar:1.8:compile
        |  \- commons-beanutils:commons-beanutils:jar:1.7.0:compile
        \- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile

UPDATE: 更新:

For a complete example, see https://github.com/rmuller/graphdb-playground (under 'orientdb-embedded-graph') 有关完整示例,请参阅https://github.com/rmuller/graphdb-playground (在'orientdb-embedded-graph'下)

After a wild struggling with V2 I went back to V.1.7.9 and everything works. 在与V2挣扎之后,我又回到了V.1.7.9,一切正常。

Maven Dependency: com.orientechnologies orientdb-graphdb 1.7.9 Maven依赖:com.orientechnologies orientdb-graphdb 1.7.9

it seems that there are some unsolved issues with V.2.x I will do another PoC within a month or so. 似乎V.2.x还有一些未解决的问题我会在一个月左右的时间里做另一个PoC。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM