Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle set transaction必须是Spring.Data.NHibernate12的第一个事务语句_Oracle_Nhibernate_Spring.net - Fatal编程技术网

Oracle set transaction必须是Spring.Data.NHibernate12的第一个事务语句

Oracle set transaction必须是Spring.Data.NHibernate12的第一个事务语句,oracle,nhibernate,spring.net,Oracle,Nhibernate,Spring.net,我正在数据库级别上使用Spring.Data.NHibernate12。我与数据库的应用程序连接未被释放。在Nhibernate日志中,我有时会收到 设置事务必须是事务的第一条语句。在函数顶部设置事务标记。 下面给出的是Dataconfiguration.xml <?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net" xmlns:db="h

我正在数据库级别上使用Spring.Data.NHibernate12。我与数据库的应用程序连接未被释放。在Nhibernate日志中,我有时会收到 设置事务必须是事务的第一条语句。在函数顶部设置事务标记。 下面给出的是Dataconfiguration.xml

<?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>

Risco.Rsp.Ac.AMAC.Mapping
Risco.Rsp.Ac.Logging.Appenders
Risco.Rsp.Ac.AMAC.CacheMappings

首先,您需要将NHibernate更新为3版本

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

我和它合作得很好

问候,