|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.batch.item.support.AbstractBufferedItemReaderItemStream
org.springframework.batch.item.database.HibernateCursorItemReader
public class HibernateCursorItemReader
ItemReader for reading database records built on top of Hibernate.
It executes the HQL setQueryString(String) when initialized and
iterates over the result set as AbstractBufferedItemReaderItemStream.read() method is called, returning
an object corresponding to current row.
The reader can be configured to use either StatelessSession
sufficient for simple mappings without the need to cascade to associated
objects or standard hibernate Session for more advanced mappings or
when caching is desired.
When stateful session is used it will be cleared after successful commit
without being flushed (no inserts or updates are expected).
Reset(rollback) functionality is implemented by item buffering allowing the
cursor used to be forward-only.
The implementation is *not* thread-safe.
| Constructor Summary | |
|---|---|
HibernateCursorItemReader()
|
|
| Method Summary | |
|---|---|
void |
afterPropertiesSet()
|
protected void |
doClose()
Close the cursor and hibernate session. |
protected void |
doOpen()
Open hibernate session and create a forward-only cursor for the setQueryString(String). |
protected Object |
doRead()
Read next item from input. |
void |
mark()
Mark is supported as long as this ItemStream is used in a
single-threaded environment. |
void |
setFetchSize(int fetchSize)
Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. |
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 org.springframework.batch.item.support.AbstractBufferedItemReaderItemStream |
|---|
close, getCurrentItemCount, jumpToItem, open, read, reset, setCurrentItemCount, setName, setSaveState, update |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.springframework.batch.item.ItemStream |
|---|
close, open, update |
| Constructor Detail |
|---|
public HibernateCursorItemReader()
| Method Detail |
|---|
public void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
sessionFactory - hibernate session factory
public void afterPropertiesSet()
throws Exception
afterPropertiesSet in interface InitializingBeanExceptionpublic void setQueryString(String queryString)
queryString - HQL query stringpublic void setUseStatelessSession(boolean useStatelessSession)
useStatelessSession - true to use
StatelessSession false to use standard hibernate
Sessionpublic void mark()
ItemStream is used in a
single-threaded environment. The state backing the mark is a single
counter, keeping track of the current position, so multiple threads
cannot be accommodated.
mark in interface ItemReadermark in class AbstractBufferedItemReaderItemStreamItemReader.mark()public void setFetchSize(int fetchSize)
ResultSet object. If the fetch size specified is zero, the
JDBC driver ignores the value.
fetchSize - the number of rows to fetch, 0 by defaultQuery.setFetchSize(int)
protected Object doRead()
throws Exception
AbstractBufferedItemReaderItemStream
doRead in class AbstractBufferedItemReaderItemStreamException
protected void doOpen()
throws Exception
setQueryString(String).
doOpen in class AbstractBufferedItemReaderItemStreamException
protected void doClose()
throws Exception
doClose in class AbstractBufferedItemReaderItemStreamException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||