【问题标题】:Create schema for graph database with Java in OrientDB在 OrientDB 中使用 Java 为图形数据库创建模式
【发布时间】:2015-05-09 18:17:42
【问题描述】:

我正在尝试使用 Java 在 OrientDB 中为图形数据库创建架构,但我有两个无法解决的问题。我正在使用这个例子http://orientdb.com/docs/last/Graph-Schema.html

  1. 当我使用这个代码时
OServerAdmin serverAdmin = new OServerAdmin("remote:localhost").connect("root", "1234");
serverAdmin.createDatabase("mydb", "graph", "plocal");
serverAdmin.close();

我收到以下错误:

java.lang.NoSuchMethodError: com.orientechnologies.common.concur.resource.OResourcePool.getAllResources()Ljava/util/Collection; 在 com.orienttechnologies.orient.client.r

它创建了数据库,但仅此而已,因为我得到了那个异常。

  1. 我可以改为从命令行创建数据库,然后使用 Java 创建架构,例如:
OrientGraph graph = new OrientGraph("remote:localhost/mydb", "root", "1234");         
OrientVertexType userVType = graph.createVertexType("User");
userVType.createProperty("email", OType.STRING)
// ...

它工作正常,但是每次我运行程序时它都会尝试创建架构,并且我收到用户类已经存在等错误消息。所以我想知道如何检查数据库和架构是否已经存在或在 OrientDB 中使用 Java 创建模式的正确方法是什么?

【问题讨论】:

    标签: java orientdb


    【解决方案1】:

    请参阅here 那里我展示了有关创建图形数据库的完整示例。

    关于该导入的一些要点:

    • 始终使用工厂 factoryGraph = new OrientGraphFactory(dbPath, "admin", "admin").setupPool(1, 10);
    • 使用非图形环境创建数据库结构(不知何故,我发现一段时间后效果更好)db = new ODatabaseDocumentTx(dbPath);
    • 创建辅助方法(例如 void createProperty(String className, String propertyName, OType oType) {...}

    我在我的最新项目中使用这种导入方式并且没有任何问题。我还创建了一种技术来保存旧功能,并在导入后恢复它们。

    如果您需要更多信息,请告诉我,我会在此处添加。

    【讨论】:

    • 谢谢。你的例子很有帮助。我稍微改变了我的代码,但我仍然有问题。如果我检查数据库是否与您的代码一起存在,那么我得到:无法调用操作,最终出现错误:java.lang.UnsupportedOperationException:无法检查远程服务器中数据库的存在。请使用控制台或 OServerAdmin 类。如果我不检查数据库是否存在只尝试创建它,那么我得到:无法调用操作,最终得到一个错误:com.orientechnologies.orient.core.exception.ODatabaseException:无法创建数据库'testdb'知道为什么?
    • 是的,数据库实例需要在本地。也许这是你的主要问题?
    • 也许吧。难道不能用Java创建远程数据库吗?
    • 不应该也可以。我只记得一些问题。您是否已经尝试过这个stackoverflow.com/questions/26485074/… 您的示例有点不同。您使用 OServerAdmin,但您没有在 localhost 之后说出哪个数据库。你能检查一下吗?
    • @vitorenesduarte 谢谢大家。我意识到这个问题与我的代码无关。 (或者至少我认为)我在一个简单的 Java 应用程序中尝试了相同的代码,并且效果很好,但是如果我在 Play Framework 项目中尝试相同的代码,那么它不会。它停止应用程序并引发异常。不知道为什么。
    猜你喜欢
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多