Как сгенерировать зашифрованный запрос с помощью Java и APOC для Neo4j?

Я пытаюсь создать свою собственную процедуру на Java, чтобы использовать ее для Neo4j. Я хотел знать, как мы можем выполнить код Cypher на Java?

Я пытался использовать функцию graphDB.execute (), но она не работает. Я просто хочу выполнить базовый код на Java, используя библиотеки Neo4j. Пример базового кода, который я хочу выполнить:

[РЕДАКТИРОВАТЬ]

public class Test
{ 
    @Context public GraphDatabaseService graphDb;
    @UserFunction
    public Result test() {

        Result result = graphDb.execute("MATCH (n:Actor)\n" + 
                "RETURN n.name AS name\n" + 
                "UNION ALL MATCH (n:Movie)\n" + 
                "RETURN n.title AS name", new HashMap<String, Object>());


        return result;
    }
}

person kazrak    schedule 02.05.2019    source источник
comment
graphDB.execute() должен быть правильный подход. Вы не предоставили соответствующий код и не описали, КАК он не работает (сообщения об ошибках и т. Д.), Поэтому мы не сможем вам помочь, пока вы его не предоставите.   -  person InverseFalcon    schedule 02.05.2019
comment
@InverseFalcon, я помещаю свой файл graphDb.execut в результат, поэтому проблема в том, что я не могу вернуть результат, чтобы отобразить его на Neo4j. Я также отредактировал пост, добавив код.   -  person kazrak    schedule 03.05.2019
comment
Я хотел бы получить тот же результат, что и на Neo4j, но пока не могу.   -  person kazrak    schedule 03.05.2019


Ответы (1)


Если вы хотите отображать узлы (как в графическом представлении результатов в браузере), вы должны возвращать сами узлы (и / или отношения и / или пути), а не только свойства (имена и заголовки). Вам также потребуется, чтобы это была процедура, а не функция. Процедуры могут создавать потоки узлов, функции могут возвращать только отдельные значения.

Измените это на процедуру и измените тип возвращаемого значения на что-то вроде Stream<NodeResult>, где NodeResult - это объект POJO, имеющий общедоступное поле узла.

Вам нужно будет соответственно изменить свой доход.

person InverseFalcon    schedule 03.05.2019