Как запрашивать/искать/извлекать Edge с парой вершин в OrientDB, используя Java API?

Я разрабатываю веб-приложение, используя OrientDB и Java API. Я обнаружил, что он создает (т.е. сохраняет) дубликаты ребер с одинаковыми вершинами.

Как узнать, существует ли ребро (для той же пары вершин). (И если они не существуют, я создам новое ребро с парой вершин.)

Edge был успешно создан в OrientDB с именем класса, используя:

openGraphNoTx.createEdgeType("Friendship");

Край был успешно добавлен следующим образом:

openGraphTx.addEdge(null, fanV, influencerV, "Friendship");

Итак, я хотел бы выполнить запрос/поиск с вершинами fanV и InfluencerV, чтобы получить любой существующий край, если он уже существует. Как мне это сделать?

Я пытался использовать:

fanV.query() ... и создайте запрос, а затем fanV.edges()... но не могу понять, как установить параметры запроса.

fanV.getEdges(Direction.IN, friend.getId().toString()); ... ??? не могу понять, как установить параметры запроса.

... но не могу понять.

Будем признательны за любую помощь в поиске/запросе/получении Edge в Java. Спасибо!


person ikevin8me    schedule 18.12.2016    source источник


Ответы (1)


Сам нашел ответ:

OrientVertex fanOrientV = transaction.getVertex(fanV.getId());
OrientVertex friendOrientV = transaction.getVertex(friendV.getId());
Iterable<Edge> edgesIterable = fanOrientV.getEdges(friendOrientV, Direction.OUT, "Friendship";

... извлечет любое существующее преимущество Дружбы.

person ikevin8me    schedule 18.12.2016