Package org.springframework.batch.item.database

# Class HibernateItemReaderHelper<T>

java.lang.Object
org.springframework.batch.item.database.HibernateItemReaderHelper<T>

All Implemented Interfaces:
  `org.springframework.beans.factory.InitializingBean`

public class HibernateItemReaderHelper<T> extends Object implements org.springframework.beans.factory.InitializingBean
Internal shared state helper for hibernate readers managing sessions and queries.

Author:
  Dave Syer, Mahmoud Ben Hassine

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HibernateItemReaderHelper()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `afterPropertiesSet()`
  `void`
  `clear()`
  Clear the session if stateful.
  `void`
  `close()`
  Close the open session (stateful or otherwise).
  `org.hibernate.query.Query<? extends T>`
  `createQuery()`
  Open appropriate type of hibernate session and create the query.
  `org.hibernate.ScrollableResults`
  `getForwardOnlyCursor(int fetchSize, Map<String,Object> parameterValues)`
  Get a cursor over all of the results, with the forward-only flag set.
  `void`
  `jumpToItem(org.hibernate.ScrollableResults cursor, int itemIndex, int flushInterval)`
  Scroll through the results up to the item specified.
  `Collection<? extends T>`
  `readPage(int page, int pageSize, int fetchSize, Map<String,Object> parameterValues)`
  Read a page of data, clearing the existing session (if necessary) first, and creating a new session before executing the query.
  `void`
  `setQueryName(String queryName)`
  `void`
  `setQueryProvider(HibernateQueryProvider<? extends T> queryProvider)`
  `void`
  `setQueryString(String queryString)`
  `void`
  `setSessionFactory(org.hibernate.SessionFactory sessionFactory)`
  `void`
  `setUseStatelessSession(boolean useStatelessSession)`
  Can be set only in uninitialized state.

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

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

- ## Constructor Details

  - ### HibernateItemReaderHelper

    public HibernateItemReaderHelper()

- ## Method Details

  - ### setQueryName

    public void setQueryName(String queryName)
    Parameters:
      `queryName` - name of a hibernate named query

  - ### setQueryString

    public void setQueryString(String queryString)
    Parameters:
      `queryString` - HQL query string

  - ### setQueryProvider

    public void setQueryProvider(HibernateQueryProvider<? extends T> queryProvider)
    Parameters:
      `queryProvider` - Hibernate query provider

  - ### setUseStatelessSession

    public void setUseStatelessSession(boolean useStatelessSession)
    Can be set only in uninitialized state.
    Parameters:
      `useStatelessSession` - `true` to use `StatelessSession` `false` to use standard hibernate `Session`

  - ### setSessionFactory

    public void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
    Parameters:
      `sessionFactory` - hibernate session factory

  - ### afterPropertiesSet

    public void afterPropertiesSet() throws Exception
    Specified by:
      `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
    Throws:
      `Exception`

  - ### getForwardOnlyCursor

    public org.hibernate.ScrollableResults getForwardOnlyCursor(int fetchSize, Map<String,Object> parameterValues)
    Get a cursor over all of the results, with the forward-only flag set.
    Parameters:
      `fetchSize` - the fetch size to use retrieving the results
      `parameterValues` - the parameter values to use (or null if none).
    Returns:
      a forward-only `ScrollableResults`

  - ### createQuery

    public org.hibernate.query.Query<? extends T> createQuery()
    Open appropriate type of hibernate session and create the query.
    Returns:
      a Hibernate Query

  - ### jumpToItem

    public void jumpToItem(org.hibernate.ScrollableResults cursor, int itemIndex, int flushInterval)
    Scroll through the results up to the item specified.
    Parameters:
      `cursor` - the results to scroll over
      `itemIndex` - index to scroll to
      `flushInterval` - the number of items to scroll past before flushing

  - ### close

    public void close()
    Close the open session (stateful or otherwise).

  - ### readPage

    public Collection<? extends T> readPage(int page, int pageSize, int fetchSize, Map<String,Object> parameterValues)
    Read a page of data, clearing the existing session (if necessary) first, and creating a new session before executing the query.
    Parameters:
      `page` - the page to read (starting at 0)
      `pageSize` - the size of the page or maximum number of items to read
      `fetchSize` - the fetch size to use
      `parameterValues` - the parameter values to use (if any, otherwise null)
    Returns:
      a collection of items

  - ### clear

    public void clear()
    Clear the session if stateful.