使用 neo4j-ogm 2 执行 CYPHER 删除查询时出现 Jackson 异常。0.x

Jackson exception when executing CYPHER delete query with neo4j-ogm 2.0.x

我正在使用 neo4j-ogm 2.0.5(与 2.0.4 相同),并且在执行 CYPHER 查询时:

"MATCH (n)-[r:...]-() WHERE ... DELETE r RETURN r" 与 session.query(Class, 字符串, 映射).

我有以下错误(似乎无法使用已删除的关系更新缓存):

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "deleted" (class org.neo4j.ogm.response.model.RelationshipModel), not marked as ignorable (6 known properties: "properties", "startNode", "type", "id", "endNode", "propertyList"])
at [Source: N/A; line: -1, column: -1] (through reference chain: org.neo4j.ogm.result.ResultGraphModel["graph"]->org.neo4j.ogm.response.model.DefaultGraphModel["relationships"]->Object[][0]->org.neo4j.ogm.response.model.RelationshipModel["deleted"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:833)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1096)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1467)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1445)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:282)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:196)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:20)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:178)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:150)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3761)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2090)
at org.neo4j.ogm.drivers.http.response.AbstractHttpResponse.nextDataRecord(AbstractHttpResponse.java:96)
at org.neo4j.ogm.drivers.http.response.GraphModelResponse.next(GraphModelResponse.java:34)
at org.neo4j.ogm.drivers.http.response.GraphModelResponse.next(GraphModelResponse.java:25)
at org.neo4j.ogm.context.GraphEntityMapper.map(GraphEntityMapper.java:84)
at org.neo4j.ogm.session.delegates.ExecuteQueriesDelegate.executeAndMap(ExecuteQueriesDelegate.java:115)
at org.neo4j.ogm.session.delegates.ExecuteQueriesDelegate.query(ExecuteQueriesDelegate.java:87)
...

github 上的错误已收到以下答复:

You can't return a deleted object in Cypher (node or relationship), but you can return its id:

MATCH (n)-[r:...]-() WHERE ... DELETE r RETURN id(r)