Функция dijkstra в orientdb не работает с tinkerpop API
Приведенный ниже код не дает правильного результата, я делаю что-то не так?
OrientGraph graph = factory.getTx();
for (OrientVertex v : (Iterable<OrientVertex>) graph.command(
new OCommandSQL("SELECT dijkstra(#97:1334, #97:1335, 'calculated_length') FROM STRUCTURE")).execute()) {
System.out.println("Path " + (ORID)v.getId());
}
Когда я выполняю запрос напрямую, я получаю правильный результат. Благодарю.
1 ответ
Решение
Я использовал этот код, и он работал
String query = "select expand(dijkstra) from (SELECT dijkstra(#21:0, #24:0, 'calculated_length') FROM STRUCTURE limit 1)";
Iterable<OrientVertex> it = g.command( new OCommandSQL(query)).execute();
for (OrientVertex v : it) {
System.out.println("Path " + (ORID)v.getId());
}
Надеюсь, поможет