public object DoInTransaction(ITransactionStatus status) { Assert.IsTrue(!TransactionSynchronizationManager.HasResource(sf), "Hasn't thread session"); Assert.IsTrue(!status.IsNewTransaction, "Is not new transaction"); Assert.IsFalse(TransactionSynchronizationManager.CurrentTransactionReadOnly); Assert.IsFalse(TransactionSynchronizationManager.ActualTransactionActive); HibernateTemplate ht = new HibernateTemplate(sf); ht.TemplateFlushMode = TemplateFlushMode.Eager; object returnValue = ht.Execute(new HibernateDelegate(Del)); Assert.IsTrue(TransactionSynchronizationManager.HasResource(sf), "Has thread session"); return null; }
private object TransactionMethod(ITransactionStatus status) { Assert.IsTrue(TransactionSynchronizationManager.HasResource(sf), "Has thread session"); HibernateTemplate ht = new HibernateTemplate(sf); object returnValue = ht.Execute(new HibernateDelegate(Del)); status.SetRollbackOnly(); return null; }
/// <summary> /// Execute schema update script, determined by the Configuration object /// used for creating the SessionFactory. A replacement for NHibernate's /// SchemaUpdate class, for automatically executing schema update scripts /// on application startup. Can also be invoked manually. /// </summary> /// <remarks> /// Fetch the LocalSessionFactoryObject itself rather than the exposed /// SessionFactory to be able to invoke this method, e.g. via /// <code>LocalSessionFactoryObject lsfo = (LocalSessionFactoryObject) ctx.GetObject("mySessionFactory");</code>. /// <p> /// Uses the SessionFactory that this bean generates for accessing a ADO.NET /// connection to perform the script. /// </p> /// </remarks> public virtual void UpdateDatabaseSchema() { log.Info("Updating database schema for Hibernate SessionFactory"); HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory); hibernateTemplate.TemplateFlushMode = TemplateFlushMode.Never; hibernateTemplate.Execute( new HibernateDelegate(delegate(ISession session) { IDbConnection con = session.Connection; Dialect dialect = Dialect.GetDialect(Configuration.Properties); DatabaseMetadata metadata = new DatabaseMetadata((DbConnection) con, dialect); string[] sql = Configuration.GenerateSchemaUpdateScript(dialect, metadata); ExecuteSchemaScript(con, sql); return null; })); }
public object DoInTransaction(ITransactionStatus status) { Assert.IsTrue(TransactionSynchronizationManager.HasResource(sf), "Has thread session"); HibernateTemplate ht = new HibernateTemplate(sf); ht.TemplateFlushMode = TemplateFlushMode.Eager; return ht.Execute(new HibernateDelegate(Del)); }
/// <summary> /// Execute schema creation script, determined by the Configuration object /// used for creating the SessionFactory. A replacement for NHibernate's /// SchemaExport class, to be invoked on application setup. /// </summary> /// <remarks> /// Fetch the LocalSessionFactoryObject itself rather than the exposed /// SessionFactory to be able to invoke this method, e.g. via /// <code>LocalSessionFactoryObject lsfo = (LocalSessionFactoryObject) ctx.GetObject("mySessionFactory");</code>. /// <p> /// Uses the SessionFactory that this bean generates for accessing a ADO.NET /// connection to perform the script. /// </p> /// </remarks> public void CreateDatabaseSchema() { log.Info("Creating database schema for Hibernate SessionFactory"); HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory); hibernateTemplate.Execute( new HibernateDelegate(delegate (ISession session) { IDbConnection con = session.Connection; Dialect dialect = Dialect.GetDialect(Configuration.Properties); string[] sql = Configuration.GenerateSchemaCreationScript(dialect); ExecuteSchemaScript(con, sql); return null; })); }