Embedded Set,Link 在OrientDb中的OType中设置

Embedded Set,Link Set in OType in OrientDb

有人可以给我在 orientdb 中使用上述类型作为值的示例代码 index.I 我正在使用 OrientDb-2.0.5[=15= 的文档 API ].
Embedded Set和Link Set有什么区别?如何选择?它们之间有什么性能差异吗?

首先,我们需要知道OrientDB中的以下内容是什么意思(此信息可用here):

  • 嵌入式记录记录包含在所有者中。包含的 Record 没有 RecordId
  • Link: Link 到另一个记录

这个例子将阐明它:

private static void orientDBCollections() throws IOException {
    dropDBIfExists(URL, USER);
    createDBIfDoesNotExist(URL, USER);

    OPartitionedDatabasePool pool = new OPartitionedDatabasePool(URL, USER, USER);
    try (ODatabaseDocument db = pool.acquire()) {
        OSchema schema = db.getMetadata().getSchema();
        OClass classA = schema.createClass("A");
        OClass classB = schema.createClass("B");
        classA.createProperty("embMap", OType.EMBEDDEDMAP, classB);
        classA.createProperty("linkMap", OType.LINKMAP, classB);
        classA.createProperty("embSet", OType.EMBEDDEDSET, classB);
        classA.createProperty("linkSet", OType.LINKSET, classB);

        ODocument docA = new ODocument("A");
        ODocument docB = new ODocument("B");
        docB.field("name", "nanana");

        Map<String, ODocument> map = new HashMap();
        map.put("thekey", docB);
        docA.field("embMap", map, OType.EMBEDDEDMAP);
        docA.field("linkMap", map, OType.LINKMAP);

        Set<ODocument> set = new HashSet();
        set.add(docB);
        docA.field("embSet", set, OType.EMBEDDEDSET);
        docA.field("linkSet", set, OType.LINKSET);

        docA.save();
    } finally {
        pool.close();
    }
}

在此之后,SELECT FROM A 来自 Studio、Console 等......你就会明白了。