如何使用JavaDB for OrientDB将链接文档添加到链接列表?

时间:2015-04-16 23:03:42

标签: orientdb

我在一个班级中有一个OType.LINKLIST字段children

我可以使用以下命令更新它:

update <parent_rid> add children = <child_rid>

但我不知道如何在不使用SQL的情况下做到这一点,这是我的目标。

ODocument doc=new ODocument("ClassA");
ODocument parentDoc=db.load(new ORecordId(rid));

如何在不使用SQL的情况下将doc添加到parentDoc的字段children

1 个答案:

答案 0 :(得分:2)

create class Doc
create class ParentDoc 
create property ParentDoc.children LINKLIST


insert into Doc set name = 'doc1'                               #12:0
insert into Doc set name = 'doc2'                               #12:1
insert into ParentDoc set name = 'pd', children = [#12:0]       #13:0
update #13:0 add children = #12:1

根据我的理解,您需要一段代码,用Java Document API替换最后四个命令。

try (ODatabaseDocument db = new ODatabaseDocumentTx("remote:localhost/DB")) {
    db.open("admin", "admin");

    ODocument doc1 = new ODocument("Doc");
    doc1.field("name", "doc1");
    doc1.save();

    List<OIdentifiable> linklist = new ArrayList();
    linklist.add(doc1);

    ODocument parent = new ODocument("ParentDoc");
    parent.field("children", linklist, OType.LINKLIST);
    parent.save();

    // ...

    ODocument doc2 = new ODocument("Doc");
    doc2.field("name", "doc2");
    doc2.save();

    List children = parent.field("children");
    children.add(doc2);
    parent.field("children", children);
    parent.save();
}