[英]Storing LinkedSet in OrientDB class throws Impossible to serialize invalid link #-1:-1
我正在嘗試使用 python 客戶端在 OrientDB 的頂點中插入一條記錄。 代碼如下
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']}}
這表明它已獲得正確項目的鏈接並正在執行插入。
但是 record_create 失敗了,我在 OrientDB 服務器控制台中得到以下異常
com.orientechnologies.orient.core.exception.ODatabaseException: Impossible to serialize invalid link #-1:-1
如果有人能指出我在這里做錯了什么,將不勝感激。
解決了這個問題。 由於 recommenditem 是一個 LinkSet,要傳遞給數組的值應該是對 Link 對象的引用
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))
該更改解決了問題並且記錄已成功插入
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.