带图像、图形、sql和ORecordBytes的orientdb
我一直在研究如何将图像保存在orientdb(作为图形数据库)中,并发现: 请注意,我只讨论涉及ORecordBytes的技术 但是,有几个问题: (1) sql命令“createcluster”似乎缺少许多可以通过JavaAPI提供的参数。默认设置是什么?有可能吗 (2) 到目前为止,我一直在使用SQL(脚本)创建实体。 为了与ORecordBytes一起工作,我尝试了以下方法:带图像、图形、sql和ORecordBytes的orientdb,sql,image,graph,binary-data,orientdb,Sql,Image,Graph,Binary Data,Orientdb,我一直在研究如何将图像保存在orientdb(作为图形数据库)中,并发现: 请注意,我只讨论涉及ORecordBytes的技术 但是,有几个问题: (1) sql命令“createcluster”似乎缺少许多可以通过JavaAPI提供的参数。默认设置是什么?有可能吗 (2) 到目前为止,我一直在使用SQL(脚本)创建实体。 为了与ORecordBytes一起工作,我尝试了以下方法: ORecordBytes record = new ORecordBytes("Binary data".ge
ORecordBytes record = new ORecordBytes("Binary data".getBytes());
record.save();
String cmd = String.format(originalQuery, record.getIdentity().toString());
打印查询时,它看起来很好(部分):
创建顶点。。。设置my_id=$some_id_new[0]。值,name=“Cool name”,image=#3:-2
当然,图像属性是获得rid的对象。
然而,我不认为#3:-2真的存在。
我试图查询它,尽管我没有输入,但无法。
此外,当使用控制台对顶点执行查询时,没有图像属性
那我怎么做呢
p、 美国。
我使用SQL脚本是因为我需要一个本机不支持的自动增量字段。脚本正在更新计数器表,获取新值,并创建新顶点(包括一些边)。这似乎更容易
编辑(1)
(1) Lvca指出,负RID是暂时的。
我有点困惑,为什么调用save()会是临时的。
否则,save()做什么
不过,我将尝试在它之后运行commit
(2) 不知道为什么脚本很重要,因为它显然得到了一个错误的记录id RID,但是Lvca问了,我答应了^^
BEGIN\n\
LET user_id_new = UPDATE CCounter INCREMENT value = 1 RETURN BEFORE $current.value WHERE name='user'
LET cuser = CREATE VERTEX CUser SET user_id=$user_id_new[0].value,\
name="%s", create_date=%s, rooms=(SELECT FROM CRooms WHERE room_id IN %s),\
image=%s\n\
COMMIT\n\
RETURN $user_id_new[0].value\n
注:
*最后的换行是因为orientdb sql脚本在每行之后都需要它们
*每行额外的反斜杠是因为我使用的是一个属性文件,它要求将其作为单个变量的一部分(第一行实际上是“my\u query=\”,但它不是脚本的一部分)
请注意,在打印时,它看起来很好(末尾没有反斜杠,每行都有自己的内容)
*不是,返回值只是一个长(id)。不需要更多了
(3) 我不得不说,我希望我能在一次交易中同时插入实体的属性和图像,我开始觉得这不会发生。没有办法吗
(4) 同时,我尝试了其他的方法,但也不起作用。也请随意评论:
- 首先,我运行上面的脚本,稍作修改:
- 已从脚本中删除“图像”字段
- 返回的整个数据速率大于id(返回$cuser)
- 其次,我使用以下(java)创建初始实体(没有图像): OCommandRequest req=graph.command(新的OCommandScript(“sql”,cmd)); vertex=req.execute(); graph.commit()
- 第三,我创建了一个ORecordBytes变量,并保存(和提交) ORecordBytes imgRec=新的ORecordBytes(graph.getRawGraph(),imgBytes); imgRec.save(); graph.commit()
- 第四,我将图像记录放入先前获得的顶点的“image”属性中,并提交 setProperty(“图像”,imgRec); vertex.save(); graph.commit()
CREATE PROPERTY CUser.img LINK
注意我不是spe
, 69, 78, 68, -82, 66, 96, -126] v1
CREATE PROPERTY CUser.img LINK