我们正在使用neo4j 1.8.2 Advanced和Spring Data neo4j 2.2.0.RELEASE和Spring Framework 3.2.0.RELEASE。我们正在使用大量自定义查询。使用我们的存储库接口中的@Query注释定义查询。
在编写测试时,我们遇到了一个查询问题。据我们所知,当查询使用不存在的起始节点时,neo4j会抛出NotFoundException
,然后将其转换为DataRetrievalFailureException
。
但是对于我们的查询,异常被转换为InvalidDataAccessResourceUsageException
,而这通常表示查询不正确。我们认为我们的查询看起来很好,所以我们不理解为什么InvalidDataAccessResourceUsageException
被抛出。当我们使用现有的起始节点测试它时,查询返回预期的结果。
查询:
START person = node({0})
MATCH person -[attributeRel:ATTRIBUTE]-> attribute -[:ATTRIBUTE_CATEGORY]-> category
WHERE attributeRel.value! <> 'N' AND attributeRel.value! <> 'Unbekannt/nicht bewertet'
RETURN category, COLLECT(attribute), COLLECT(attributeRel)
ORDER BY category.name"
这是Spring Data neo4j中的错误还是我们的查询错误或异常类型是正确的,我们只是不明白为什么它会被抛出。