2015-08-11 2 views
0

несколько ДОПОЛНИТЕЛЬНЫХ МАТЕРИАЛОВ, возвращающих ошибку ниже в Neo4j 2.2.3. Я использую парсер Cypher 2.2. **Несколько ДОПОЛНИТЕЛЬНЫЕ МАТЧИ в Neo4j 2.2.3 ошибки

"org.neo4j.rest.graphdb.RestResultException: нуль на NullPointerException". Тот же запрос отлично работает в Neo4j 2.1.7.

**

match (user:user)-[k:SUBSCRIBED]->(package) 
where package.startDate < 1439268888365 and package.endDate > 1439268888365 
with package,user optional match (package)-[j:HAS]->(products) 
with package,j,products,user optional match (package)-[j:HAS]-(otherpackages) 
return distinct package,products,user,otherpackages 

Все указатели, чтобы решить эту?

ответ

0

В соответствии с Neo4j documentation необязательное совпадение может возвращать значение null, чтобы знать, где возвращается null, просто попробуйте каждый сегмент вашего запроса, заменив каждый «с» на возврат.

Вы также можете управлять возвратом null с помощью Case expression и заменить его значением по умолчанию (например, 0).

Вы также должны рассмотреть возможность обновления до версии 2.2.4, это критическое обновление, и это может решить вашу проблему, просто применив его.

+0

я понял после нескольких попыток, что я использую Cypher синтаксический анализатор 2.2 и выглядит так, как будто он не поддерживает множественное необязательное соответствие. Когда я переключился на парсер 2.1, он прошел. –

0

Попробуйте это,

match (user:user)-[k:SUBSCRIBED]->(package:package) 
 
where package.startDate < 1439268888365 and package.endDate > 1439268888365 
 
with package,user 
 
optional match (package)-[j:HAS]->(products:products) with package,j,products,user 
 
optional match (package)-[j:HAS]-(otherpackages) with package,j,products,user,otherpackages 
 
return 
 
{ 
 
package:[{package:package}], 
 
products:[{products:products}], 
 
user:[{user:user}], 
 
otherpackages:[{otherpackages:otherpackages}] 
 
}

В случае, если вы хотите различные средства использовать

сбор (упаковка)

Смежные вопросы