Package org.springframework.batch.item.data

# Class Neo4jItemReader<T>

java.lang.Object
org.springframework.batch.item.ItemStreamSupport
org.springframework.batch.item.support.AbstractItemStreamItemReader<T>
org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<T>
org.springframework.batch.item.data.AbstractPaginatedDataItemReader<T>
org.springframework.batch.item.data.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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected org.apache.commons.logging.Log`
  `logger`
  Deprecated.

  ### Fields inherited from class org.springframework.batch.item.data.AbstractPaginatedDataItemReader

  `page, pageSize, results`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Neo4jItemReader()`
  Deprecated.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `afterPropertiesSet()`
  Deprecated.
  Checks mandatory properties
  `protected Iterator<T>`
  `doPageRead()`
  Deprecated.
  Method this `ItemStreamReader` delegates to for the actual work of reading a page.
  `protected String`
  `generateLimitCypherQuery()`
  Deprecated.
  `protected final Map<String,Object>`
  `getParameterValues()`
  Deprecated.
  `protected org.neo4j.ogm.session.SessionFactory`
  `getSessionFactory()`
  Deprecated.
  `protected final Class<T>`
  `getTargetType()`
  Deprecated.
  `void`
  `setMatchStatement(String matchStatement)`
  Deprecated.
  An optional match fragment of the cypher query.
  `void`
  `setOrderByStatement(String orderByStatement)`
  Deprecated.
  A list of properties to order the results by.
  `void`
  `setParameterValues(Map<String,Object> parameterValues)`
  Deprecated.
  Optional parameters to be used in the cypher query.
  `void`
  `setReturnStatement(String returnStatement)`
  Deprecated.
  The return statement of the cypher query.
  `void`
  `setSessionFactory(org.neo4j.ogm.session.SessionFactory sessionFactory)`
  Deprecated.
  Establish the session factory for the reader.
  `void`
  `setStartStatement(String startStatement)`
  Deprecated.
  The start segment of the cypher query.
  `void`
  `setTargetType(Class<T> targetType)`
  Deprecated.
  The object type to be returned from each call to `AbstractItemCountingItemStreamItemReader.read()`
  `void`
  `setWhereStatement(String whereStatement)`
  Deprecated.
  An optional where fragment of the cypher query.

  ### Methods inherited from class org.springframework.batch.item.data.AbstractPaginatedDataItemReader

  `doClose, doOpen, doRead, jumpToItem, setPageSize`

  ### Methods inherited from class org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader

  `close, getCurrentItemCount, isSaveState, open, read, setCurrentItemCount, setMaxItemCount, setSaveState, update`

  ### Methods inherited from class org.springframework.batch.item.ItemStreamSupport

  `getExecutionContextKey, setExecutionContextName, setName`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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.