@Repository public class Neo4jTemplate extends Object implements Neo4jOperations, ApplicationEventPublisherAware
Neo4jOperations
.
Please note that all methods on this class throw a PersistenceException
if any underlying Exception
is
thrown. Since PersistenceException
is a runtime exception, this is not documented at the method level.
Constructor and Description |
---|
Neo4jTemplate(org.neo4j.ogm.session.Session session)
Constructs a new
Neo4jTemplate based on the given Neo4j OGM Session . |
Modifier and Type | Method and Description |
---|---|
long |
count(Class<?> entityClass)
Provides the instance count for the given node entity type.
|
void |
delete(Object entity)
Removes the given node or relationship entity from the graph.
|
<T> void |
deleteAll(Class<T> type) |
org.neo4j.ogm.session.result.QueryStatistics |
execute(String jsonStatements)
Issue a single Cypher update operation (such as a CREATE, MERGE or DELETE statement).
|
org.neo4j.ogm.session.result.QueryStatistics |
execute(String cypher,
Map<String,Object> parameters)
Allows a cypher statement with a modification statement to be executed.
|
<T> T |
load(Class<T> type,
Long id)
Loads an entity of type T that matches the specified ID to the default depth.
|
<T> T |
load(Class<T> type,
Long id,
int depth)
Loads an entity of type T that matches the specified ID to the given depth.
|
<T> Collection<T> |
loadAll(Class<T> type)
Retrieves all the entities of the given class in the database hydrated to the default depth.
|
<T> Collection<T> |
loadAll(Class<T> type,
Collection<Long> ids) |
<T> Collection<T> |
loadAll(Class<T> type,
Collection<Long> ids,
int depth) |
<T> Collection<T> |
loadAll(Class<T> type,
int depth)
Retrieves all the entities of the given class in the database hydrated to the specified depth.
|
<T> Collection<T> |
loadAll(Collection<T> objects) |
<T> Collection<T> |
loadAll(Collection<T> objects,
int depth)
Reloads all of the entities in the given
Collection to the specified depth. |
<T> Collection<T> |
loadAllByProperties(Class<T> type,
org.neo4j.ogm.cypher.Filters parameters)
Retrieves all the entities of the specified type that contain a properties matching the ones supplied with given name and value.
|
<T> Collection<T> |
loadAllByProperty(Class<T> type,
String name,
Object value)
Retrieves all the entities of the specified type that contain a property matching the given name with the given value.
|
<T> Collection<T> |
loadAllByProperty(Class<T> type,
String name,
Object value,
int depth) |
<T> T |
loadByProperties(Class<T> type,
org.neo4j.ogm.cypher.Filters parameters)
Retrieves the entity of the specified type that contains properties matching the ones supplied with given name and value.
|
<T> T |
loadByProperty(Class<T> type,
String propertyName,
Object propertyValue)
Retrieves the entity of the specified type that contains a property matching the given name with the given value.
|
<T> T |
loadByPropertyOrNull(Class<T> type,
String propertyName,
Object propertyValue) |
void |
purgeSession() |
Iterable<Map<String,Object>> |
query(String cypher,
Map<String,?> parameters)
|
<T> T |
queryForObject(Class<T> objectType,
String cypher,
Map<String,?> parameters)
Runs the specified Cypher query with the given parameters against the underlying Neo4j database and returns the result
marshalled as an object of the requested type.
|
<T> Iterable<T> |
queryForObjects(Class<T> objectType,
String cypher,
Map<String,?> parameters)
Runs the specified Cypher query with the given parameters against the underlying Neo4j database and returns the result
marshalled as a group of objects of the requested type.
|
<T> T |
save(T entity)
Saves the specified entity in the graph database.
|
<T> T |
save(T entity,
int depth) |
void |
setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) |
@Autowired public Neo4jTemplate(org.neo4j.ogm.session.Session session)
Neo4jTemplate
based on the given Neo4j OGM Session
.session
- The Neo4j OGM session upon which to base the templatepublic void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
setApplicationEventPublisher
in interface ApplicationEventPublisherAware
public <T> T load(Class<T> type, Long id)
Neo4jOperations
load
in interface Neo4jOperations
type
- The type of entity to loadid
- The ID of the node or relationship to matchnull
if no match is foundpublic <T> T load(Class<T> type, Long id, int depth)
Neo4jOperations
load
in interface Neo4jOperations
type
- The type of entity to loadid
- The ID of the node or relationship to matchdepth
- The maximum number of relationships away from the identified object to follow when loading related entities.
A value of 0 just loads the object's properties and no related entities. A value of -1 implies no depth limit.null
if no match is foundpublic <T> Collection<T> loadAll(Class<T> type, Collection<Long> ids)
public <T> Collection<T> loadAll(Class<T> type, Collection<Long> ids, int depth)
public <T> Collection<T> loadAll(Class<T> type)
Neo4jOperations
loadAll
in interface Neo4jOperations
type
- The type of entity to return.Collection
containing all instances of the given type in the database or an empty collection if none
are found, never null
public <T> Collection<T> loadAll(Class<T> type, int depth)
Neo4jOperations
loadAll
in interface Neo4jOperations
type
- The type of entity to return.depth
- The maximum number of relationships away from each loaded object to follow when loading related entities.
A value of 0 just loads the object's properties and no related entities. A value of -1 implies no depth limit.Collection
containing all instances of the given type in the database or an empty collection if none
are found, never null
public <T> Collection<T> loadAll(Collection<T> objects)
public <T> Collection<T> loadAll(Collection<T> objects, int depth)
Neo4jOperations
Collection
to the specified depth. Of course, this will
only work for persistent objects (i.e., those with a non-null @GraphId
field).loadAll
in interface Neo4jOperations
objects
- The objects to re-hydratedepth
- The depth to which the objects should be hydratedCollection
of entities matching those in the given collection hydrated to the given depthpublic <T> T loadByProperty(Class<T> type, String propertyName, Object propertyValue)
Neo4jOperations
Neo4jOperations.loadAllByProperty(Class, String, Object)
instead.loadByProperty
in interface Neo4jOperations
type
- The type of entity to loadpropertyName
- The name of the property on the entity against which to match the given valuepropertyValue
- The value of the named property against which to match entitiesnull
public <T> T loadByPropertyOrNull(Class<T> type, String propertyName, Object propertyValue)
public <T> Collection<T> loadAllByProperty(Class<T> type, String name, Object value)
Neo4jOperations
loadAllByProperty
in interface Neo4jOperations
type
- The type of entity to loadname
- The name of the property on the entity against which to match the given valuevalue
- The value of the named property against which to match entitiesCollection
containing all the entities that match the given property or an empty Collection
if
there aren't any matches, never null
public <T> T loadByProperties(Class<T> type, org.neo4j.ogm.cypher.Filters parameters)
Neo4jOperations
Neo4jOperations.loadAllByProperty(Class, String, Object)
instead.loadByProperties
in interface Neo4jOperations
type
- The type of entity to loadparameters
- The parameters to filter bynull
public <T> Collection<T> loadAllByProperties(Class<T> type, org.neo4j.ogm.cypher.Filters parameters)
Neo4jOperations
loadAllByProperties
in interface Neo4jOperations
type
- The type of entity to loadparameters
- The parameters to filter byCollection
containing all the entities that match the given properties or an empty Collection
if
there aren't any matches, never null
public <T> Collection<T> loadAllByProperty(Class<T> type, String name, Object value, int depth)
public void delete(Object entity)
Neo4jOperations
delete
in interface Neo4jOperations
entity
- The entity to deletepublic <T> void deleteAll(Class<T> type)
public org.neo4j.ogm.session.result.QueryStatistics execute(String jsonStatements)
Neo4jOperations
execute
in interface Neo4jOperations
jsonStatements
- The Cypher query to executeQueryStatistics
representing statistics about graph modifications as a result of the cypher execution.public org.neo4j.ogm.session.result.QueryStatistics execute(String cypher, Map<String,Object> parameters)
Neo4jOperations
Parameters may be scalars or domain objects themselves.
execute
in interface Neo4jOperations
cypher
- The parametrisable cypher to execute.parameters
- Any parameters to attach to the cypher. These may be domain objects or scalars. Note that
if a complex domain object is provided only the properties of that object will be set.
If relationships of a provided object also need to be set then the cypher should reflect this
and further domain object parameters provided.QueryStatistics
representing statistics about graph modifications as a result of the cypher execution.public void purgeSession()
public <T> T save(T entity)
Neo4jOperations
save
in interface Neo4jOperations
entity
- The entity to savepublic <T> T save(T entity, int depth)
public Iterable<Map<String,Object>> query(String cypher, Map<String,?> parameters)
Neo4jOperations
Iterable
of Map
s.
Each of the resultant maps corresponds to a "row" in the result set and the key set in each map contains all the names
contained in the RETURN
clause of the given query.
query
in interface Neo4jOperations
cypher
- The Cypher query to executeparameters
- The parameter to merge into the cypher query or an empty Map
if the given query isn't parameterisedIterable
of Map
s represening the result of the query or an empty Iterable
if there are
no results, never null
public <T> Iterable<T> queryForObjects(Class<T> objectType, String cypher, Map<String,?> parameters)
Neo4jOperations
queryForObjects
in interface Neo4jOperations
objectType
- The Class
denoting the type of entity to returncypher
- The Cypher query to executeparameters
- The parameter to merge into the Cypher query or an empty Map
if the query's not parameterisedIterable
over the entities found by executing the query or an empty Iterable
if nothing
is found by the query, never null
public <T> T queryForObject(Class<T> objectType, String cypher, Map<String,?> parameters)
Neo4jOperations
queryForObject
in interface Neo4jOperations
objectType
- The Class
denoting the type of entity to returncypher
- The Cypher query to executeparameters
- The parameter to merge into the Cypher query or an empty Map
if the query's not parameterisednull
if nothing is
found by the querypublic long count(Class<?> entityClass)
Neo4jOperations
count
in interface Neo4jOperations
entityClass
- The Class
representing the type of node entity to countCopyright © 2011-2015–2015 Pivotal Software, Inc.. All rights reserved.