Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
使用OracleDataSource时DBUnit/Spring事务未回滚_Spring_Oracle11g_Dbunit - Fatal编程技术网

使用OracleDataSource时DBUnit/Spring事务未回滚

使用OracleDataSource时DBUnit/Spring事务未回滚,spring,oracle11g,dbunit,Spring,Oracle11g,Dbunit,我正在尝试使用DBUnit将空间数据插入到Oracle数据库中,然后将其回滚。为了插入空间数据,我必须使用Oracle10DataTypeFactory,它为空间数据类型引入了其他DBUnit Oracle扩展。在内部,他们将对OraclePreparedStatement进行转换。为了获得OraclePreparedStatement,我使用OracleDataSource。因此,当我使用以下Spring配置时: <bean id="testDataSource" class="orac

我正在尝试使用DBUnit将空间数据插入到Oracle数据库中,然后将其回滚。为了插入空间数据,我必须使用Oracle10DataTypeFactory,它为空间数据类型引入了其他DBUnit Oracle扩展。在内部,他们将对OraclePreparedStatement进行转换。为了获得OraclePreparedStatement,我使用OracleDataSource。因此,当我使用以下Spring配置时:

<bean id="testDataSource" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close">
  <property name="URL" value="${database.url}"/>
  <property name="user" value="${user}"/>
  <property name="password" value="${password}"/>
  <property name="implicitCachingEnabled" value="false" />
  <property name="explicitCachingEnabled" value="false" />
  <property name="connectionCachingEnabled" value="false" />
</bean>
<bean id="testDataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
  <property name="url" value="${database.url}"/>
  <property name="username" value="${user}/>
  <property name="password" value="${password}"/>
</bean>

但即便如此,这似乎也被忽视了。有人遇到过类似的情况吗?

只有在事务启动时,Spring角色恢复才能正常工作


因此,请确保您的测试使用Spring Runner(例如,通过使用
@RunWith(SpringJUnit4ClassRunner.class)
注释测试),并且使用
@Transactional

注释的测试只有在事务启动时才能正常工作

因此,请确保您的测试使用Spring Runner(例如,通过使用
@RunWith(SpringJUnit4ClassRunner.class)
注释测试),并使用
@Transactional
注释测试

connection = DataSourceUtils.getConnection(dataSource);
connection.setAutoCommit(false);