Как использовать функцию exists() для связи в шифре neo4j

#neo4j

Вопрос:

Я пытаюсь реализовать метод hasProperty() в отношениях со следующим кодом

     public boolean hasProperty(String key) {
        String query = "match ()-[r]->() where id(r)=$id return exists(r."   key   ")";
        Value value = Values.parameters("id", id);
        logger.debug("hasProperty() "   query   " "   value.toString());
        Result ret = tx.run(query, value);
        return ret.single().get(0).isTrue();
    }
 

Эффективный шифр есть match ()-[r]->() where id(r)=185 return exists(r.name) , но я получил ошибку, которая

 Neo.DatabaseError.General.UnknownError
 

«логические операции org.neo4j.cypher.CursorUtils.relationshipHasProperty(org.neo4j.internal.kernel.api.Read, org.neo4j.internal.kernel.api.RelationshipScanCursor, длинный, org.neo4j.internal.kernel.api.PropertyCursor, int)

Когда я использую exists() на подобном узле match (n)-[r]->() where id(r)=185 return exists(n.name) , это работает. Я подозреваю, что функция exists() не может быть использована для связи, но, согласно руководству по шифрованию, функция exists() возвращает, если указанное свойство существует в узле и связи. Итак, что здесь не так и как я могу проверить, имеет ли отношение указанное свойство?

Комментарии:

1. Я попробовал match ()-[r]->() where id(r)=185 return exists(r.name) встроенную базу данных, она работает. Так что, возможно, шифр прав, но у тестовой базы данных есть проблема. Обе базы данных имеют версию 4.2.3