org.springframework.batch.item.database
Class HibernateItemReaderHelper<T>

java.lang.Object
  extended by org.springframework.batch.item.database.HibernateItemReaderHelper<T>
All Implemented Interfaces:
InitializingBean

public class HibernateItemReaderHelper<T>
extends Object
implements InitializingBean

Internal shared state helper for hibernate readers managing sessions and queries.

Author:
Dave Syer

Constructor Summary
HibernateItemReaderHelper()
           
 
Method Summary
 void afterPropertiesSet()
           
 void clear()
          Clear the session if stateful.
 void close()
          Close the open session (stateful or otherwise).
 org.hibernate.Query 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 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 Detail

HibernateItemReaderHelper

public HibernateItemReaderHelper()
Method Detail

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 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 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 createQuery()
Open appropriate type of hibernate session and create the 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

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.



Copyright © 2013 SpringSource. All Rights Reserved.