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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidclear()Clear the session if stateful.voidclose()Close the open session (stateful or otherwise).org.hibernate.query.Query<? extends T>Open appropriate type of hibernate session and create the query.org.hibernate.ScrollableResultsgetForwardOnlyCursor(int fetchSize, Map<String, Object> parameterValues) Get a cursor over all of the results, with the forward-only flag set.voidjumpToItem(org.hibernate.ScrollableResults cursor, int itemIndex, int flushInterval) Scroll through the results up to the item specified.Collection<? extends T>Read a page of data, clearing the existing session (if necessary) first, and creating a new session before executing the query.voidsetQueryName(String queryName) voidsetQueryProvider(HibernateQueryProvider<? extends T> queryProvider) voidsetQueryString(String queryString) voidsetSessionFactory(org.hibernate.SessionFactory sessionFactory) voidsetUseStatelessSession(boolean useStatelessSession) Can be set only in uninitialized state.
-
Constructor Details
-
HibernateItemReaderHelper
public HibernateItemReaderHelper()
-
-
Method Details
-
setQueryName
- Parameters:
queryName- name of a hibernate named query
-
setQueryString
- Parameters:
queryString- HQL query string
-
setQueryProvider
- Parameters:
queryProvider- Hibernate query provider
-
setUseStatelessSession
public void setUseStatelessSession(boolean useStatelessSession) Can be set only in uninitialized state.- Parameters:
useStatelessSession-trueto useStatelessSessionfalseto use standard hibernateSession
-
setSessionFactory
public void setSessionFactory(org.hibernate.SessionFactory sessionFactory) - Parameters:
sessionFactory- hibernate session factory
-
afterPropertiesSet
- Specified by:
afterPropertiesSetin interfaceorg.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 resultsparameterValues- the parameter values to use (or null if none).- Returns:
- a forward-only
ScrollableResults
-
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 overitemIndex- index to scroll toflushInterval- 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 readfetchSize- the fetch size to useparameterValues- the parameter values to use (if any, otherwise null)- Returns:
- a collection of items
-
clear
public void clear()Clear the session if stateful.
-