将LinkedSet存储在OrientDB类中会导致无法序列化无效链接#-1:-1
我正在尝试使用python客户端在OrientDB的顶点中插入一条记录。 代码如下将LinkedSet存储在OrientDB类中会导致无法序列化无效链接#-1:-1,orientdb,pyorient,orientdb3.0,Orientdb,Pyorient,Orientdb3.0,我正在尝试使用python客户端在OrientDB的顶点中插入一条记录。 代码如下 print(recommendationCluster['recommendation']) for recommendation in recommendationCluster['recommendation']: item = menuitems.loadMenuItemWithId(str(recommendation),orientclient)
print(recommendationCluster['recommendation'])
for recommendation in recommendationCluster['recommendation']:
item = menuitems.loadMenuItemWithId(str(recommendation),orientclient)
items.append(item._rid)
print("Creating cluster of ", items)
cluster['recommendeditems'] = items
dbData = {}
dbData['@RecommendationCluster']=cluster
print("Storing recommendation cluster ", dbData)
newCluster = orientclient.record_create(-1, dbData)
在控制台中,我看到了消息
Storing recommendation cluster {'@RecommendationCluster': {'recommendeditems': ['#126:2', '#124:8']}}
这表明它已经获得了指向正确项目的链接,并且正在执行插入
但是记录创建失败,我在OrientDB服务器控制台中遇到以下异常
com.orientechnologies.orient.core.exception.ODatabaseException: Impossible to serialize invalid link #-1:-1
如果有人能指出我做错了什么,我将不胜感激。解决了这个问题。由于recommenditem是一个链接集,因此要传递给数组的值应该是对链接对象的引用
for recommendation in recommendationCluster['recommendation']:
item = menuitems.loadMenuItemWithId(str(recommendation),orientclient)
items.append(item._rid)
必须换成
for recommendation in recommendationCluster['recommendation']:
item = menuitems.loadMenuItemWithId(str(recommendation),orientclient)
items.append(pyorient.OrientRecordLink(item._rid))
该更改修复了该问题,并成功插入了记录