Class HibernateItemWriter<T>

java.lang.Object
org.springframework.batch.item.database.HibernateItemWriter<T>
All Implemented Interfaces:
ItemWriter<T>, org.springframework.beans.factory.InitializingBean

public class HibernateItemWriter<T> extends Object implements ItemWriter<T>, org.springframework.beans.factory.InitializingBean
ItemWriter that uses a Hibernate session to save or update entities that are not part of the current Hibernate session. It will also flush the session after writing (i.e. at chunk boundaries if used in a Spring Batch TaskletStep). It will also clear the session on write default (see clearSession property).

The writer is thread-safe once properties are set (normal singleton behavior) if a CurrentSessionContext that uses only one session per thread is used.
Author:
Dave Syer, Thomas Risberg, Michael Minella, Mahmoud Ben Hassine
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final org.apache.commons.logging.Log
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Check mandatory properties - there must be a sessionFactory.
    protected void
    doWrite(org.hibernate.SessionFactory sessionFactory, List<? extends T> items)
    Do perform the actual write operation using Hibernate's API.
    void
    setClearSession(boolean clearSession)
    Flag to indicate that the session should be cleared and flushed at the end of the write (default true).
    void
    setSessionFactory(org.hibernate.SessionFactory sessionFactory)
    Set the Hibernate SessionFactory to be used internally.
    void
    write(List<? extends T> items)
    Save or update any entities not in the current hibernate session and then flush the hibernate session.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • logger

      protected static final org.apache.commons.logging.Log logger
  • Constructor Details

    • HibernateItemWriter

      public HibernateItemWriter()
  • Method Details

    • setClearSession

      public void setClearSession(boolean clearSession)
      Flag to indicate that the session should be cleared and flushed at the end of the write (default true).
      Parameters:
      clearSession - the flag value to set
    • setSessionFactory

      public void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
      Set the Hibernate SessionFactory to be used internally.
      Parameters:
      sessionFactory - session factory to be used by the writer
    • afterPropertiesSet

      public void afterPropertiesSet()
      Check mandatory properties - there must be a sessionFactory.
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • write

      public void write(List<? extends T> items)
      Save or update any entities not in the current hibernate session and then flush the hibernate session.
      Specified by:
      write in interface ItemWriter<T>
      Parameters:
      items - items to be written
      See Also:
    • doWrite

      protected void doWrite(org.hibernate.SessionFactory sessionFactory, List<? extends T> items)
      Do perform the actual write operation using Hibernate's API. This can be overridden in a subclass if necessary.
      Parameters:
      sessionFactory - Hibernate SessionFactory to be used
      items - the list of items to use for the write