我使用TinkerGraph进行集成测试(扩展单元测试)。在这个实现中,Edge ids是作为整数序列生成的。我想要改变它,以便它们作为随机UUID生成。这样做的原因是为了使我的测试设置更接近我的生产图形数据库。我可以在Tinkerpop3中这样做吗?如果是的话,怎么做?
我发现在Tinkerpop/蓝图(https://github.com/tinkerpop/blueprints/wiki/id-implementation)中存在一个IdGraph.IdFactory,它似乎能提供我所需要的东西。然而,据我所知,这对于Tinkerpop3来说是不可用的。
发布于 2018-11-28 09:33:34
这看起来是可能的,但需要做一些工作。Vertex和Edge Ids在TinkerGraph中的确定是用IDManagers做的这里。
您可以看到,这是通过一个配置值来决定的,该值最终使用反射来构造IDManager。
所以你必须做以下几件事:
IDManager来创建您自己的接口,您可以使用默认管理器作为指导。例如:
公共枚举DefaultIdManager实现IdManager {.任何{@覆盖公共长getNextId(最终TinkerGraph图){返回唯一随机数}}.}我很想知道是否有更简单的方法,但我认为这会奏效的。
边注:
如果生产图DB提供内存层,可能会更容易检查。我知道一些dbs做的图,使用它而不是TinkerGraph可能会更好。我相信,TinkerGraph实际上只是为了在周围电镀。
https://stackoverflow.com/questions/53319470
复制相似问题