Example usage for org.springframework.orm.hibernate5 HibernateTransactionManager HibernateTransactionManager

List of usage examples for org.springframework.orm.hibernate5 HibernateTransactionManager HibernateTransactionManager

Introduction

In this page you can find the example usage for org.springframework.orm.hibernate5 HibernateTransactionManager HibernateTransactionManager.

Prototype

public HibernateTransactionManager(SessionFactory sessionFactory) 

Source Link

Document

Create a new HibernateTransactionManager instance.

Usage

From source file:org.projectforge.framework.persistence.history.HibernateSearchReindexer.java

@SuppressWarnings({ "rawtypes", "unchecked" })
private void reindex(final Class<?> clazz, final ReindexSettings settings, final StringBuffer buf) {
    // PF-378: Performance of run of full re-indexing the data-base is very slow for large data-bases
    // Single transactions needed, otherwise the full run will be very slow for large data-bases.
    final TransactionTemplate tx = new TransactionTemplate(
            new HibernateTransactionManager(hibernate.getSessionFactory()));
    tx.execute(new TransactionCallback() {
        // The call-back is needed, otherwise a lot of transactions are left open until last run is completed:
        @Override/*  w  ww  .  jav a  2  s .c o m*/
        public Object doInTransaction(final TransactionStatus status) {
            try {
                hibernate.execute(new HibernateCallback() {
                    @Override
                    public Object doInHibernate(final Session session) throws HibernateException {
                        databaseDao.reindex(clazz, settings, buf);
                        status.setRollbackOnly();
                        return null;
                    }
                });
            } catch (final Exception ex) {
                buf.append(" (an error occured, see log file for further information.), ");
                log.error("While rebuilding data-base-search-index for '" + clazz.getName() + "': "
                        + ex.getMessage(), ex);
            }
            return null;
        }
    });
}

From source file:org.projectforge.framework.persistence.xstream.HibernateXmlConverter.java

/**
 * Schreibt alle Objekte der Datenbank in den angegebenen Writer.<br/>
 * <b>Warnung!</b> Bei der Serialisierung von Collections wird derzeit nur {@link java.util.Set} sauber untersttzt.
 * //from w  w w .j ava2s .  c o m
 * @param writer Ziel fr die XML-Datei.
 * @param includeHistory bei false werden die History Eintrge nicht geschrieben
 * @param preserveIds If true, the object ids will be preserved, otherwise new ids will be assigned through xstream.
 */
public void dumpDatabaseToXml(final Writer writer, final boolean includeHistory, final boolean preserveIds) {
    final TransactionTemplate tx = new TransactionTemplate(
            new HibernateTransactionManager(hibernate.getSessionFactory()));
    tx.execute(new TransactionCallback() {
        @Override
        public Object doInTransaction(final TransactionStatus status) {
            hibernate.execute(new HibernateCallback() {
                @Override
                public Object doInHibernate(final Session session) throws HibernateException {
                    writeObjects(writer, includeHistory, session, preserveIds);
                    status.setRollbackOnly();
                    return null;
                }
            });
            return null;
        }
    });
}