2010-06-16 85 views
0

我与数据库我的数据库应用程序level.my连接上使用Spring.Data.NHibernate12不NHibernate的越来越released.Sometime登录我得到 集交易必须是第一笔交易。在交易标记的顶部设置交易标记。 给出的下面是所有的Dataconfiguration.xml集交易必须在交易的第一条语句用Spring.Data.NHibernate12

<?xml version="1.0" encoding="utf-8" ?> 

<objects xmlns="http://www.springframework.net" 
     xmlns:db="http://www.springframework.net/database"> 
    <object id="AuditLogger" type="Risco.Rsp.Ac.Audit.AuditLogger, Risco.Rsp.Ac.Audit" singleton="false"> 
    <property name="CacheSettings" ref="CacheSettings"/> 
    </object> 

    <object id="CacheSettings" 
      type="Risco.Rsp.Ac.AMAC.CacheMgmt.Utilities.UpdateEntityCacheHelper, Risco.Rsp.Ac.AMAC.CacheMgmt.Utilities" singleton="false"/> 

    <object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core"> 
    <property name="ConfigSections" value="databaseSettings"/> 
    </object> 

    <db:provider id="AMACDbProvider" 
       provider="OracleClient-2.0" 
    connectionString="Data Source=RISCODEVDB;User ID=amsbvt; Password=amsuser1234;"/> 

    <!-- For creating Factory objects --> 
    <object id="NHibernateSessionFactory" 
    type="Spring.Data.NHibernate.LocalSessionFactoryObject,Spring.Data.NHibernate12"> 
    <property name="DbProvider" ref="AMACDbProvider"/> 
    <property name="MappingAssemblies"> 

     <list> 
     <value>Risco.Rsp.Ac.AMAC.Mapping</value> 
     <value>Risco.Rsp.Ac.Logging.Appenders</value> 
     <value>Risco.Rsp.Ac.AMAC.CacheMappings</value> 
     </list> 
    </property> 
    <property name="HibernateProperties"> 
     <dictionary> 

     <entry key="hibernate.connection.provider" 
       value="NHibernate.Connection.DriverConnectionProvider"/> 

     <entry key="hibernate.dialect" 
       value="NHibernate.Dialect.Oracle9Dialect"/> 

     <entry key="hibernate.connection.driver_class" 
       value="NHibernate.Driver.OracleClientDriver"/> 
     </dictionary> 
    </property> 
    </object> 

    <object id="HibernateTemplate" type="Spring.Data.NHibernate.HibernateTemplate" singleton="false"> 
    <property name="SessionFactory" ref="NHibernateSessionFactory" /> 
    <property name="TemplateFlushMode" value="Auto" /> 
    <property name="CacheQueries" value="true" /> 
    <property name="EntityInterceptor" ref="AuditLogger"/> 
    </object> 

    <!-- To make use of spring's + nHibernate transaction management--> 
    <object id="transactionManager" singleton="true" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12"> 
    <property name="DbProvider" ref="AMACDbProvider"/> 
    <property name="SessionFactory" ref="NHibernateSessionFactory"/> 
    <property name="EntityInterceptor" ref="AuditLogger"/> 
    </object> 


    <object id="CategoryDAOTx" type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject,Spring.Data"> 
    <property name="PlatformTransactionManager" ref="transactionManager"/> 
    <property name="Target" ref="SendConfigDataDAO"/> 
    <property name="TransactionAttributes"> 
     <name-values> 
     <add key="Save" value="PROPAGATION_REQUIRED"/> 
     <add key="Delete" value="PROPAGATION_REQUIRED"/> 
     <add key="SaveOrUpdate" value="PROPAGATION_REQUIRED"/> 
     <add key="FetchForUpdate" value="PROPAGATION_REQUIRED"/> 
     </name-values> 
    </property> 
    </object> 

    <object id="SendConfigDataDAO" type="Risco.Rsp.Ac.AMAC.DAO.SendConfigDataMgmt.SendConfigDataDAO,Risco.Rsp.Ac.AMAC.DAO.SendConfigDataMgmt"> 
    <property name="HibernateTemplate" ref="HibernateTemplate" /> 
    <property name="SessionFactory" ref="NHibernateSessionFactory"/> 
    </object> 

    <!--<tx:attribute-driven/>--> 

</objects> 

回答

1

首先,你需要更新NHibernate的3个版本。

而不是使用Spring.Data.NHibernate12,你必须使用Spring.Data.NHibernate30。

我的工作很好。

Regards,