如何在ArcadeDB中更新检索得到的顶点?
ArcadeDB中RoteImmutableVertex的更新解决方法
方法1:直接使用SQL更新语句
无需先查询顶点对象,直接通过UPDATE命令完成更新,效率更高:
String updateQuery = "UPDATE TestVtx SET name = 'value' WHERE $xy_io = ?"; db.command("sql", updateQuery, "30").close();
方法2:将不可变顶点转为可变实例
如果必须先获取顶点再修改,可通过顶点ID重新加载出可变对象:
while(rs.hasNext()){ Vertex immutableVtx = rs.next().getVertex().get(); // 重新加载为可修改的顶点实例 Vertex mutableVtx = db.load(immutableVtx.getId()); mutableVtx.setProperty("name", "value"); mutableVtx.save(); }
方法3:查询时强制返回可变顶点
在SELECT语句中添加FETCHPLAN *:1,让查询直接返回可变类型的顶点:
String queryPositional = "SELECT FROM TestVtx WHERE $xy_io=? FETCHPLAN *:1"; rs = db.command("sql", queryPositional, "30"); while(rs.hasNext()){ Vertex vtx = rs.next().getVertex().get(); // 此时vtx为可变类型,可直接调用更新方法 vtx.setProperty("name", "value"); vtx.save(); }
内容的提问来源于stack exchange,提问作者Ironluca
相关产品推荐
相关产品推荐

