From 614e283535da00a9366a9896701dc094aa437406 Mon Sep 17 00:00:00 2001 From: Frantisek Hartman Date: Mon, 1 May 2017 13:40:26 +0100 Subject: [PATCH] Map single-ended INCOMING one-to-one or one-to-many relationships Relationships were not added to mapping context, which consequently caused the relationship not to be deleted. Fixes #357. --- .../src/main/java/org/neo4j/ogm/context/GraphEntityMapper.java | 3 +++ .../ogm/persistence/examples/pizza/PizzaIntegrationTest.java | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/neo4j/ogm/context/GraphEntityMapper.java b/core/src/main/java/org/neo4j/ogm/context/GraphEntityMapper.java index 184cf5dad4..32380aaa2e 100644 --- a/core/src/main/java/org/neo4j/ogm/context/GraphEntityMapper.java +++ b/core/src/main/java/org/neo4j/ogm/context/GraphEntityMapper.java @@ -482,6 +482,9 @@ private void mapOneToMany(Collection oneToManyRelationships) { Object source = mappingContext.getNodeEntity(edge.getStartNode()); Object target = mappingContext.getNodeEntity(edge.getEndNode()); FieldInfo writer = getRelationalWriter(metadata.classInfo(source), edge.getType(), OUTGOING, target); + if (writer == null) { + writer = getRelationalWriter(metadata.classInfo(target), edge.getType(), INCOMING, source); + } // ensures its tracked in the domain if (writer != null) { MappedRelationship mappedRelationship = new MappedRelationship(edge.getStartNode(), edge.getType(), edge.getEndNode(), edge.getId(), source.getClass(), ClassUtils.getType(writer.typeParameterDescriptor())); diff --git a/test/src/test/java/org/neo4j/ogm/persistence/examples/pizza/PizzaIntegrationTest.java b/test/src/test/java/org/neo4j/ogm/persistence/examples/pizza/PizzaIntegrationTest.java index d18de7dcab..f059b460c5 100644 --- a/test/src/test/java/org/neo4j/ogm/persistence/examples/pizza/PizzaIntegrationTest.java +++ b/test/src/test/java/org/neo4j/ogm/persistence/examples/pizza/PizzaIntegrationTest.java @@ -485,7 +485,6 @@ public void shouldDeleteChangedIncomingRelationship() throws Exception { @Test - @Ignore("Relationship is not deleted to the deep dish pizza.") public void shouldDeleteChangedIncomingRelationshipWithClearSessionAndLoad() throws Exception { Pizza pizza = new Pizza();