使用Tinkerpop框架从DB分离后更新Vertex的最佳做法是什么?

时间:2014-10-03 22:01:41

标签: graph orientdb tinkerpop tinkerpop-blueprint tinkerpop-frames

让我们举例说明

  1. 我收到了一个带有Tinkerpop蓝图的Vertex,然后我使用Frames将它转换为实体。
  2. 我关闭数据库(所以从现在起节点与数据库分离)
  3. 我在网页上显示节点,让用户修改它。
  4. 用户进行了一些修改,然后我会坚持更改。

    问题是数据库的实例已经关闭,因此实体与数据库分离:更新节点的最佳做法是什么(考虑性能和内存使用情况)?

    这可能是代码示例:

     FramedGraph<OrientGraph> graph = factory.getFramedGraph();
     User user = graph.addVertex(null, User.class);
     graph.shutdown();
    

    然后我想稍后更新节点:

     user.name = "Donald Duck";
     user.... ?
    

    谢谢你, 安德烈

1 个答案:

答案 0 :(得分:1)

我发现这种方式,看起来非常有效:

public User persistUser(User user){

    FramedGraph<OrientGraph> graph = factory.getFramedGraph();

    user = graph.frame(user.asVertex(), User.class);
    factory.persist();
    graph.shutdown();

因此框架会自动将实体合并回数据库。 然后你必须坚持下去。