From 57d435490ddfc2646827060a58731ddff48bbd46 Mon Sep 17 00:00:00 2001 From: Michael Simons Date: Fri, 11 Sep 2020 16:54:43 +0200 Subject: [PATCH] DATAGRAPH-1377 - Add unknown entities to mapping context when called from templates. --- .../java/org/springframework/data/neo4j/core/Neo4jTemplate.java | 1 + .../springframework/data/neo4j/core/ReactiveNeo4jTemplate.java | 1 + .../data/neo4j/core/mapping/DefaultNeo4jConverter.java | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/neo4j/core/Neo4jTemplate.java b/src/main/java/org/springframework/data/neo4j/core/Neo4jTemplate.java index db87aa67c..47068835a 100644 --- a/src/main/java/org/springframework/data/neo4j/core/Neo4jTemplate.java +++ b/src/main/java/org/springframework/data/neo4j/core/Neo4jTemplate.java @@ -378,6 +378,7 @@ public final class Neo4jTemplate implements Neo4jOperations, BeanFactoryAware { private ExecutableQuery createExecutableQuery(Class domainType, String cypherStatement, Map parameters) { + Assert.notNull(neo4jMappingContext.getPersistentEntity(domainType), "Cannot get or create persistent entity."); PreparedQuery preparedQuery = PreparedQuery.queryFor(domainType).withCypherQuery(cypherStatement) .withParameters(parameters).usingMappingFunction(neo4jMappingContext.getRequiredMappingFunctionFor(domainType)) .build(); diff --git a/src/main/java/org/springframework/data/neo4j/core/ReactiveNeo4jTemplate.java b/src/main/java/org/springframework/data/neo4j/core/ReactiveNeo4jTemplate.java index 1384ec1c3..ad843a089 100644 --- a/src/main/java/org/springframework/data/neo4j/core/ReactiveNeo4jTemplate.java +++ b/src/main/java/org/springframework/data/neo4j/core/ReactiveNeo4jTemplate.java @@ -374,6 +374,7 @@ public final class ReactiveNeo4jTemplate implements ReactiveNeo4jOperations, Bea private Mono> createExecutableQuery(Class domainType, String cypherQuery, Map parameters) { + Assert.notNull(neo4jMappingContext.getPersistentEntity(domainType), "Cannot get or create persistent entity."); PreparedQuery preparedQuery = PreparedQuery.queryFor(domainType).withCypherQuery(cypherQuery) .withParameters(parameters) .usingMappingFunction(this.neo4jMappingContext.getRequiredMappingFunctionFor(domainType)).build(); diff --git a/src/main/java/org/springframework/data/neo4j/core/mapping/DefaultNeo4jConverter.java b/src/main/java/org/springframework/data/neo4j/core/mapping/DefaultNeo4jConverter.java index ad645071a..2dbf52d4c 100644 --- a/src/main/java/org/springframework/data/neo4j/core/mapping/DefaultNeo4jConverter.java +++ b/src/main/java/org/springframework/data/neo4j/core/mapping/DefaultNeo4jConverter.java @@ -405,7 +405,7 @@ final class DefaultNeo4jConverter implements Neo4jConverter { Map relationshipsAndProperties = new HashMap<>(); // if the list is null the mapping is based on a custom query - if (list == Values.NULL) { + if (Values.NULL.equals(list)) { Predicate isList = entry -> entry instanceof Value && typeSystem.LIST().isTypeOf(entry);