嗨,我有一个接口和一个相应的实现类,例如:
public interface IActor extends VertexFrame {
@Property(ActorProps.nodeClass)
public String getNodeClass();
@Property(ActorProps.nodeClass)
public void setNodeClass(String str);
@Property(ActorProps.id)
public String getId();
@Property(ActorProps.id)
public void setId(String id);
@Property(ActorProps.name)
public String getName();
@Property(ActorProps.name)
public void setText(String text);
@Property(ActorProps.uuid)
public String getUuid();
@Property(ActorProps.uuid)
public void setUuid(String uuid);
@Adjacency(label = RelClasses.CoActors, direction = Direction.OUT)
public Iterable<IActor> getCoactors();
}
我使用 OrientDB 看起来像这样。我对 Neo4j 也有类似的实现:
Graph graph = new OrientGraph("remote:localhost/actordb");
FramedGraph<Graph> manager = new FramedGraphFactory().create(graph);
IActor actor = manager.frame(((OrientGraph)graph).getVertexByKey("Actor.uuid",uuid), IActor.class);
上述工作,但问题是在这种情况下或类似情况下,因为类 Actor 的两个顶点之间存在关系,可能存在图循环。有没有办法通过注释或其他方式(例如通过管理器)定义在特定 @Adjacency 的 x 步后停止,这样就不会永远存在?如果@GremlinGroovy(https://github.com/tinkerpop/frames/wiki/Gremlin-Groovy)注释是答案,你能举个例子吗?