diff --git a/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
index 8ebbfe904..89f76341e 100644
--- a/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
+++ b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj
@@ -32,8 +32,8 @@ import org.springframework.data.neo4j.annotation.*;
import org.springframework.data.neo4j.aspects.core.NodeBacked;
import org.springframework.data.neo4j.aspects.core.RelationshipBacked;
-import org.springframework.data.neo4j.support.EntityStateHandler;
-import org.springframework.data.neo4j.support.RelationshipResult;
+import org.springframework.data.neo4j.mapping.RelationshipResult;
+import org.springframework.data.neo4j.support.mapping.EntityStateHandler;
import org.springframework.data.neo4j.support.node.NodeEntityStateFactory;
import org.springframework.data.neo4j.support.DoReturn;
import org.springframework.data.neo4j.core.EntityPath;
diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/core/GraphBacked.java b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/core/GraphBacked.java
index b4e2ceba9..237bdb91b 100644
--- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/core/GraphBacked.java
+++ b/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/core/GraphBacked.java
@@ -16,7 +16,7 @@
package org.springframework.data.neo4j.aspects.core;
-import org.springframework.data.neo4j.support.ManagedEntity;
+import org.springframework.data.neo4j.mapping.ManagedEntity;
/**
* super interface denoting entities that are graph backed, the backing STATE can be a {@link org.neo4j.graphdb.Node}
diff --git a/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml b/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml
index 281e75cd0..f85db6ad1 100644
--- a/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml
+++ b/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml
@@ -55,7 +55,7 @@
-
+
@@ -89,7 +89,7 @@
-
+
@@ -145,5 +145,5 @@
-
+
diff --git a/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/config/CrossStoreNeo4jConfiguration.java b/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/config/CrossStoreNeo4jConfiguration.java
index 412e45274..9d79b7eba 100644
--- a/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/config/CrossStoreNeo4jConfiguration.java
+++ b/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/config/CrossStoreNeo4jConfiguration.java
@@ -23,9 +23,8 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.data.neo4j.aspects.config.Neo4jAspectConfiguration;
import org.springframework.data.neo4j.cross_store.support.node.CrossStoreNodeEntityInstantiator;
import org.springframework.data.neo4j.cross_store.support.node.CrossStoreNodeEntityStateFactory;
-import org.springframework.data.neo4j.support.EntityInstantiator;
+import org.springframework.data.neo4j.mapping.EntityInstantiator;
import org.springframework.data.neo4j.support.node.NodeEntityInstantiator;
-import org.springframework.data.neo4j.support.node.NodeEntityStateFactory;
import org.springframework.data.neo4j.transaction.ChainedTransactionManager;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
diff --git a/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/support/node/CrossStoreNodeEntityInstantiator.java b/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/support/node/CrossStoreNodeEntityInstantiator.java
index 60b9549e6..9ad16156b 100644
--- a/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/support/node/CrossStoreNodeEntityInstantiator.java
+++ b/spring-data-neo4j-cross-store/src/main/java/org/springframework/data/neo4j/cross_store/support/node/CrossStoreNodeEntityInstantiator.java
@@ -18,7 +18,7 @@ package org.springframework.data.neo4j.cross_store.support.node;
import org.neo4j.graphdb.Node;
import org.springframework.data.neo4j.aspects.core.NodeBacked;
-import org.springframework.data.neo4j.support.EntityInstantiator;
+import org.springframework.data.neo4j.mapping.EntityInstantiator;
import org.springframework.data.neo4j.support.node.NodeEntityInstantiator;
import org.springframework.orm.jpa.EntityManagerFactoryUtils;
@@ -45,7 +45,7 @@ public class CrossStoreNodeEntityInstantiator implements EntityInstantiator generic type of the entity
diff --git a/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context.xml b/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context.xml
index 1e32acbf6..c5f2091be 100644
--- a/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context.xml
+++ b/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context.xml
@@ -110,7 +110,7 @@
-
+
@@ -142,7 +142,7 @@
-
+
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/config/Neo4jConfiguration.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/config/Neo4jConfiguration.java
index 44c102dc6..cba688f01 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/config/Neo4jConfiguration.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/config/Neo4jConfiguration.java
@@ -38,12 +38,14 @@ import org.springframework.data.neo4j.fieldaccess.NodeDelegatingFieldAccessorFac
import org.springframework.data.neo4j.fieldaccess.RelationshipDelegatingFieldAccessorFactory;
import org.springframework.data.neo4j.mapping.*;
import org.springframework.data.neo4j.support.*;
+import org.springframework.data.neo4j.support.mapping.*;
import org.springframework.data.neo4j.support.node.NodeEntityInstantiator;
import org.springframework.data.neo4j.support.node.NodeEntityStateFactory;
import org.springframework.data.neo4j.support.relationship.RelationshipEntityInstantiator;
import org.springframework.data.neo4j.support.relationship.RelationshipEntityStateFactory;
+import org.springframework.data.neo4j.support.typerepresentation.ClassValueTypeInformationMapper;
import org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory;
-import org.springframework.data.neo4j.template.Neo4jExceptionTranslator;
+import org.springframework.data.neo4j.support.Neo4jExceptionTranslator;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.jta.JtaTransactionManager;
import org.springframework.transaction.jta.UserTransactionAdapter;
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/IndexingPropertyFieldAccessorListenerFactory.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/IndexingPropertyFieldAccessorListenerFactory.java
index 5ccca3553..d25dd8b9f 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/IndexingPropertyFieldAccessorListenerFactory.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/IndexingPropertyFieldAccessorListenerFactory.java
@@ -21,24 +21,18 @@ import org.apache.commons.logging.LogFactory;
import org.neo4j.graphdb.PropertyContainer;
import org.neo4j.graphdb.index.Index;
import org.neo4j.index.lucene.ValueContext;
-import org.springframework.data.neo4j.annotation.Indexed;
-
import org.springframework.data.neo4j.mapping.Neo4jPersistentProperty;
import org.springframework.data.neo4j.support.Neo4jTemplate;
-import java.lang.reflect.AnnotatedElement;
-
public class IndexingPropertyFieldAccessorListenerFactory implements FieldAccessorListenerFactory {
private final PropertyFieldAccessorFactory propertyFieldAccessorFactory;
private final ConvertingNodePropertyFieldAccessorFactory convertingNodePropertyFieldAccessorFactory;
- private final IndexProvider indexProvider;
private final Neo4jTemplate template;
public IndexingPropertyFieldAccessorListenerFactory(final Neo4jTemplate template, final PropertyFieldAccessorFactory propertyFieldAccessorFactory, final ConvertingNodePropertyFieldAccessorFactory convertingNodePropertyFieldAccessorFactory) {
this.template = template;
- indexProvider = new IndexProvider(template);
this.propertyFieldAccessorFactory = propertyFieldAccessorFactory;
this.convertingNodePropertyFieldAccessorFactory = convertingNodePropertyFieldAccessorFactory;
}
@@ -55,42 +49,10 @@ public class IndexingPropertyFieldAccessorListenerFactory {
- private final Neo4jTemplate template;
-
- public IndexProvider(Neo4jTemplate template) {
- this.template = template;
- }
-
- private String getIndexKey(Neo4jPersistentProperty property) {
- Indexed indexed = property.getAnnotation(Indexed.class);
- if (indexed==null || indexed.fieldName().isEmpty()) return property.getNeo4jPropertyName();
- return indexed.fieldName();
- }
-
- private Indexed getIndexedAnnotation(AnnotatedElement element) {
- return element.getAnnotation(Indexed.class);
- }
-
- private Index getIndex(Neo4jPersistentProperty property, Object instance) {
- final Indexed indexedAnnotation = property.getAnnotation(Indexed.class);
- @SuppressWarnings("unchecked") final Class type = (Class) property.getOwner().getType();
- final String providedIndexName = indexedAnnotation.indexName().isEmpty() ? null : indexedAnnotation.indexName();
- String indexName = Indexed.Name.get(indexedAnnotation.level(), type, providedIndexName, instance.getClass());
- if (!property.getIndexInfo().isFulltext()) {
- return template.getIndex(type, indexName, false);
- }
- if (providedIndexName == null) throw new IllegalStateException("@Indexed(fullext=true) on "+property+" requires an providedIndexName too ");
- String defaultIndexName = Indexed.Name.get(indexedAnnotation.level(), type, null, instance.getClass());
- if (providedIndexName.equals(defaultIndexName)) throw new IllegalStateException("Full-index name for "+property+" must differ from the default name: "+defaultIndexName);
- return template.getIndex(type, indexName, true);
- }
- }
-
/**
* @author Michael Hunger
* @since 12.09.2010
@@ -101,19 +63,17 @@ public class IndexingPropertyFieldAccessorListenerFactory index = indexProvider.getIndex(property, entity);
+ @SuppressWarnings("unchecked") Index index = template.getIndex(property, entity.getClass());
if (newVal instanceof Number) newVal = ValueContext.numeric((Number) newVal);
final T state = template.getPersistentState(entity);
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedFieldAccessorSet.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedFieldAccessorSet.java
index 419bc453b..657884383 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedFieldAccessorSet.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedFieldAccessorSet.java
@@ -17,10 +17,10 @@
package org.springframework.data.neo4j.fieldaccess;
import org.springframework.data.neo4j.core.EntityState;
+import org.springframework.data.neo4j.mapping.ManagedEntity;
import org.springframework.data.neo4j.mapping.Neo4jPersistentProperty;
import org.springframework.data.neo4j.support.DoReturn;
import org.springframework.data.neo4j.support.Neo4jTemplate;
-import org.springframework.data.neo4j.support.ManagedEntity;
import java.util.AbstractSet;
import java.util.Collection;
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedPrefixedDynamicProperties.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedPrefixedDynamicProperties.java
index c63b84369..fac6f968b 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedPrefixedDynamicProperties.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/fieldaccess/ManagedPrefixedDynamicProperties.java
@@ -16,10 +16,10 @@
package org.springframework.data.neo4j.fieldaccess;
import org.springframework.data.neo4j.core.EntityState;
+import org.springframework.data.neo4j.mapping.ManagedEntity;
import org.springframework.data.neo4j.mapping.Neo4jPersistentProperty;
import org.springframework.data.neo4j.support.DoReturn;
import org.springframework.data.neo4j.support.Neo4jTemplate;
-import org.springframework.data.neo4j.support.ManagedEntity;
import java.util.Map;
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/EntityInstantiator.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/EntityInstantiator.java
similarity index 97%
rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/EntityInstantiator.java
rename to spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/EntityInstantiator.java
index c86076e2a..60550e49b 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/EntityInstantiator.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/EntityInstantiator.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.neo4j.support;
+package org.springframework.data.neo4j.mapping;
/**
* Interface to be implemented by classes that can instantiate and configure entities. The framework must do this when
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/IndexInfo.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/IndexInfo.java
new file mode 100644
index 000000000..7da1a6b17
--- /dev/null
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/IndexInfo.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.neo4j.mapping;
+
+import org.springframework.data.neo4j.annotation.Indexed;
+
+/**
+* @author mh
+* @since 18.10.11
+*/
+public class IndexInfo {
+ private String indexName;
+ private boolean fulltext;
+ private final String fieldName;
+ private final Indexed.Level level;
+
+ public IndexInfo(Indexed annotation, Neo4jPersistentProperty property) {
+ this.indexName = determineIndexName(annotation,property);
+ this.fulltext = annotation.fulltext();
+ fieldName = annotation.fieldName();
+ level = annotation.level();
+ }
+
+
+ private String determineIndexName(Indexed annotation, Neo4jPersistentProperty property) {
+ final String providedIndexName = annotation.indexName().isEmpty() ? null : annotation.indexName();
+ final Class> declaringClass = property.getField().getDeclaringClass();
+ final Class> instanceType = property.getOwner().getType();
+ return Indexed.Name.get(annotation.level(), declaringClass, providedIndexName, instanceType);
+ }
+
+ public String getIndexName() {
+ return indexName;
+ }
+
+ public boolean isFulltext() {
+ return fulltext;
+ }
+}
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/ManagedEntity.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/ManagedEntity.java
similarity index 94%
rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/ManagedEntity.java
rename to spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/ManagedEntity.java
index 73ba5512f..15d364f20 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/ManagedEntity.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/ManagedEntity.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.neo4j.support;
+package org.springframework.data.neo4j.mapping;
import org.springframework.data.neo4j.core.EntityState;
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/Neo4jPersistentProperty.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/Neo4jPersistentProperty.java
index 850767f9f..c86af389e 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/Neo4jPersistentProperty.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/mapping/Neo4jPersistentProperty.java
@@ -48,7 +48,7 @@ public interface Neo4jPersistentProperty extends PersistentProperty domainClass;
/**
- * Creates a new {@link CypherQueryCreator} using the given {@link PartTree}, {@link Neo4jMappingContext} and domain
+ * Creates a new {@link CypherQueryCreator} using the given {@link PartTree}, {@link org.springframework.data.neo4j.support.mapping.Neo4jMappingContext} and domain
* class.
*
* @param tree must not be {@literal null}.
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructure.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructure.java
index 45a6e226e..97b300c52 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructure.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/MappingInfrastructure.java
@@ -23,8 +23,9 @@ import org.springframework.data.neo4j.annotation.QueryType;
import org.springframework.data.neo4j.conversion.ResultConverter;
import org.springframework.data.neo4j.core.GraphDatabase;
import org.springframework.data.neo4j.core.TypeRepresentationStrategy;
-import org.springframework.data.neo4j.mapping.Neo4jEntityPersister;
-import org.springframework.data.neo4j.mapping.Neo4jMappingContext;
+import org.springframework.data.neo4j.mapping.EntityInstantiator;
+import org.springframework.data.neo4j.support.index.IndexProvider;
+import org.springframework.data.neo4j.support.mapping.*;
import org.springframework.data.neo4j.support.conversion.EntityResultConverter;
import org.springframework.data.neo4j.support.node.EntityStateFactory;
import org.springframework.data.neo4j.support.node.NodeEntityInstantiator;
@@ -32,6 +33,7 @@ import org.springframework.data.neo4j.support.query.CypherQueryExecutor;
import org.springframework.data.neo4j.support.relationship.RelationshipEntityInstantiator;
import org.springframework.data.neo4j.support.typerepresentation.NoopNodeTypeRepresentationStrategy;
import org.springframework.data.neo4j.support.typerepresentation.NoopRelationshipTypeRepresentationStrategy;
+import org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategies;
import org.springframework.transaction.PlatformTransactionManager;
import javax.validation.Validator;
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/template/Neo4jExceptionTranslator.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/Neo4jExceptionTranslator.java
similarity index 98%
rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/template/Neo4jExceptionTranslator.java
rename to spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/Neo4jExceptionTranslator.java
index 420814618..573564308 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/template/Neo4jExceptionTranslator.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/Neo4jExceptionTranslator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.data.neo4j.template;
+package org.springframework.data.neo4j.support;
import org.neo4j.graphdb.NotFoundException;
import org.neo4j.graphdb.NotInTransactionException;
diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/Neo4jTemplate.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/Neo4jTemplate.java
index 0c8d49cd6..07e83ace8 100644
--- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/Neo4jTemplate.java
+++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/support/Neo4jTemplate.java
@@ -32,12 +32,15 @@ import org.springframework.data.neo4j.core.GraphDatabase;
import org.springframework.data.neo4j.core.TypeRepresentationStrategy;
import org.springframework.data.neo4j.core.UncategorizedGraphStoreException;
import org.springframework.data.neo4j.mapping.EntityPersister;
+import org.springframework.data.neo4j.mapping.RelationshipResult;
+import org.springframework.data.neo4j.support.mapping.EntityStateHandler;
+import org.springframework.data.neo4j.support.mapping.Neo4jPersistentEntityImpl;
+import org.springframework.data.neo4j.mapping.Neo4jPersistentProperty;
import org.springframework.data.neo4j.repository.GraphRepository;
import org.springframework.data.neo4j.repository.NodeGraphRepository;
import org.springframework.data.neo4j.repository.RelationshipGraphRepository;
import org.springframework.data.neo4j.support.query.QueryEngine;
import org.springframework.data.neo4j.template.GraphCallback;
-import org.springframework.data.neo4j.template.Neo4jExceptionTranslator;
import org.springframework.data.neo4j.template.Neo4jOperations;
import org.springframework.data.util.TypeInformation;
import org.springframework.transaction.PlatformTransactionManager;
@@ -175,6 +178,12 @@ public class Neo4jTemplate implements Neo4jOperations, EntityPersister {
return infrastructure.getEntityPersister().projectTo(entity, targetType);
}
+ /**
+ * just sets the persistent state (i.e. Node or id) to the entity, doesn't copy any values/properties.
+ * @param entity
+ * @param
+ * @return
+ */
@Override
public S getPersistentState(Object entity) {
notNull(entity,"entity");
@@ -193,12 +202,13 @@ public class Neo4jTemplate implements Neo4jOperations, EntityPersister {
}
@Override
- public void delete(Object entity) {
- notNull(entity,"entity");
- infrastructure.getEntityRemover().remove(entity);
+ public void delete(final Object entity) {
+ notNull(entity, "entity");
+ infrastructure.getEntityRemover().removeNodeEntity(entity);
}
- public void removeNodeEntity(Object entity) {
+ public void removeNodeEntity(final Object entity) {
+ notNull(entity, "entity");
infrastructure.getEntityRemover().removeNodeEntity(entity);
}
@@ -418,7 +428,7 @@ public class Neo4jTemplate implements Neo4jOperations, EntityPersister {
}
@Override
- public QueryEngine queryEngineFor(QueryType type) {
+ public QueryEngine queryEngineFor(QueryType type) {
return infrastructure.getGraphDatabase().queryEngineFor(type, infrastructure.getResultConverter());
}
@@ -426,7 +436,8 @@ public class Neo4jTemplate implements Neo4jOperations, EntityPersister {
@SuppressWarnings("unchecked")
public Result