Class Neo4jItemReader<T>

All Implemented Interfaces:
ItemReader<T>, ItemStream, ItemStreamReader<T>, org.springframework.beans.factory.InitializingBean

@Deprecated public class Neo4jItemReader<T> extends AbstractPaginatedDataItemReader<T> implements org.springframework.beans.factory.InitializingBean
Deprecated.
since 5.0 in favor of the item reader from https://github.com/spring-projects/spring-batch-extensions/blob/main/spring-batch-neo4j

Restartable ItemReader that reads objects from the graph database Neo4j via a paging technique.

It executes cypher queries built from the statement fragments provided to retrieve the requested data. The query is executed using paged requests of a size specified in AbstractPaginatedDataItemReader.setPageSize(int). Additional pages are requested as needed when the AbstractItemCountingItemStreamItemReader.read() method is called. On restart, the reader will begin again at the same number item it left off at.

Performance is dependent on your Neo4J configuration (embedded or remote) as well as page size. Setting a fairly large page size and using a commit interval that matches the page size should provide better performance.

This implementation is thread-safe between calls to AbstractItemCountingItemStreamItemReader.open(org.springframework.batch.item.ExecutionContext), however you should set saveState=false if used in a multi-threaded environment (no restart available).

Author:
Michael Minella, Mahmoud Ben Hassine
  • Field Details

    • logger

      protected org.apache.commons.logging.Log logger
      Deprecated.
  • Constructor Details

    • Neo4jItemReader

      public Neo4jItemReader()
      Deprecated.
  • Method Details

    • setParameterValues

      public void setParameterValues(Map<String,Object> parameterValues)
      Deprecated.
      Optional parameters to be used in the cypher query.
      Parameters:
      parameterValues - the parameter values to be used in the cypher query
    • getParameterValues

      protected final Map<String,Object> getParameterValues()
      Deprecated.
    • setStartStatement

      public void setStartStatement(String startStatement)
      Deprecated.
      The start segment of the cypher query. START is prepended to the statement provided and should not be included.
      Parameters:
      startStatement - the start fragment of the cypher query.
    • setReturnStatement

      public void setReturnStatement(String returnStatement)
      Deprecated.
      The return statement of the cypher query. RETURN is prepended to the statement provided and should not be included
      Parameters:
      returnStatement - the return fragment of the cypher query.
    • setMatchStatement

      public void setMatchStatement(String matchStatement)
      Deprecated.
      An optional match fragment of the cypher query. MATCH is prepended to the statement provided and should not be included.
      Parameters:
      matchStatement - the match fragment of the cypher query
    • setWhereStatement

      public void setWhereStatement(String whereStatement)
      Deprecated.
      An optional where fragment of the cypher query. WHERE is prepended to the statement provided and should not be included.
      Parameters:
      whereStatement - where fragment of the cypher query
    • setOrderByStatement

      public void setOrderByStatement(String orderByStatement)
      Deprecated.
      A list of properties to order the results by. This is required so that subsequent page requests pull back the segment of results correctly. ORDER BY is prepended to the statement provided and should not be included.
      Parameters:
      orderByStatement - order by fragment of the cypher query.
    • getSessionFactory

      protected org.neo4j.ogm.session.SessionFactory getSessionFactory()
      Deprecated.
    • setSessionFactory

      public void setSessionFactory(org.neo4j.ogm.session.SessionFactory sessionFactory)
      Deprecated.
      Establish the session factory for the reader.
      Parameters:
      sessionFactory - the factory to use for the reader.
    • setTargetType

      public void setTargetType(Class<T> targetType)
      Deprecated.
      The object type to be returned from each call to AbstractItemCountingItemStreamItemReader.read()
      Parameters:
      targetType - the type of object to return.
    • getTargetType

      protected final Class<T> getTargetType()
      Deprecated.
    • generateLimitCypherQuery

      protected String generateLimitCypherQuery()
      Deprecated.
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Deprecated.
      Checks mandatory properties
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
      See Also:
      • InitializingBean.afterPropertiesSet()
    • doPageRead

      protected Iterator<T> doPageRead()
      Deprecated.
      Description copied from class: AbstractPaginatedDataItemReader
      Method this ItemStreamReader delegates to for the actual work of reading a page. Each time this method is called, the resulting Iterator should contain the items read within the next page.

      If the Iterator is empty or null when it is returned, this ItemReader will assume that the input has been exhausted.
      Specified by:
      doPageRead in class AbstractPaginatedDataItemReader<T>
      Returns:
      an Iterator containing the items within a page.