【问题标题】:Check if class exists or not in orientdb检查 orientdb 中是否存在类
【发布时间】:2015-11-03 10:56:27
【问题描述】:

如何在 orient db 中检查一个类是否存在 如果它没有在数据库中退出,我需要创建它并插入记录(如果存在)我需要插入记录。 我需要用 JAVA 做同样的事情

【问题讨论】:

    标签: java orientdb


    【解决方案1】:

    您可以使用以下语句通过 SQL 检索架构信息:

     select expand(classes) from metadata:schema 
    

    特别是检索单个类:

     select from (
        select expand(classes) from metadata:schema
     ) where name = 'YourClassName'
    

    来自 Java:

     ODatabaseDocumentTx db = ...
     if(db.getMetadata().getSchema().existsClass("ClassName")){
       ...
     }
    

    如果你有一个 OrientGraph,你可以得到底层的ODatabaseDocumentTx

     graph.getRawGraph();
    

    【讨论】:

    • 为什么您编写的 SQL 查询不能使用大写字母?
    • 因为类名是按原样存储的,所以=进行正常比较。你总是可以where name.toLowerCase() = 'yourclassname'
    • SELECT EXPAND(CLASSES) FROM METADATA:SCHEMA 怎么样?!这里没有类名。我认为将来应该修复它。因为在其他类似 SQL 的数据库中,查询语言不区分大小写。
    • 属性名称(在这种情况下为classes)区分大小写,这就是它不起作用的原因
    猜你喜欢
    • 2014-10-08
    • 2016-11-05
    • 2018-09-21
    • 1970-01-01
    • 2013-05-04
    • 2014-08-01
    • 2017-09-24
    • 1970-01-01
    相关资源
    最近更新 更多