如何设置LINKMAP属性

问题描述 投票:1回答:1

这是我尝试设置LINKMAP属性的方法,它不起作用。有人知道如何解决此问题吗?

public static void setOrientLinkMapProperty(OVertex srcVertex, String propName, String linkMapKey, OVertex newPropVertex) {
        Map<String, ORID> currLinkMap = srcVertex.getProperty(propName);

        if (currLinkMap == null) currLinkMap = new HashMap<>();

        srcVertex.setProperty(propName, currLinkMap.put(linkMapKey, newPropVertex.getIdentity()), OType.LINKMAP);
        srcVertex.save();
    }
orientdb
1个回答
0
投票

设置LINKMAP的纯SQL方法如下:

CREATE CLASS Example EXTENDS V
CREATE PROPERTY Example.name STRING
CREATE PROPERTY Example.map LINKMAP

CREATE VERTEX Example SET name = 'a'
CREATE VERTEX Example SET name = 'b'

UPDATE (SELECT FROM Example WHERE name = 'a') SET map = {'b':(SELECT FROM Example WHERE name = 'b')}

我不确定为什么您的代码不起作用,这似乎是正确的。

也许尝试显式初始化HashMap

currLinkMap = new HashMap<String, ORID>(); // Explicitly initialized hashmap
currLinkMap.put(linkMapKey, newPropVertex.getIdentity());
srcVertex.setProperty(propName, currLinkMap, OType.LINKMAP);
srcVertex.save();

运行该代码时是否有任何错误?

© www.soinside.com 2019 - 2024. All rights reserved.