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, June Young. Park
  • 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.