Java源码示例:org.springframework.orm.hibernate3.HibernateTransactionManager
示例1
/**
* 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 unterstützt.
* @param writer Ziel für die XML-Datei.
* @param includeHistory bei false werden die History Einträge 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() {
public Object doInTransaction(final TransactionStatus status)
{
hibernate.execute(new HibernateCallback() {
public Object doInHibernate(final Session session) throws HibernateException
{
writeObjects(writer, includeHistory, session, preserveIds);
status.setRollbackOnly();
return null;
}
});
return null;
}
});
}
示例2
@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:
public Object doInTransaction(final TransactionStatus status)
{
try {
hibernate.execute(new HibernateCallback() {
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;
}
});
}
示例3
@Bean
@Autowired
public HibernateTransactionManager transactionManager(final SessionFactory sessionFactory) {
final HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(sessionFactory);
return txManager;
}
示例4
@Bean
@Autowired
public HibernateTransactionManager transactionManager(final SessionFactory sessionFactory) {
final HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(sessionFactory);
return txManager;
}
示例5
@Bean
public PlatformTransactionManager hibernateTransactionManager(LocalSessionFactoryBean sessionFactory) {
HibernateTransactionManager transactionManager = new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory.getObject());
return transactionManager;
}