我在
Spring MVC 3.1项目中使用基于注释的事务,并且在抛出异常时我的事务没有被回滚.
这是我的服务代码
@Service
public class ImportService {
@Autowired
ImportMapper importMapper;
@Transactional(propagation=Propagation.REQUIRED, isolation=Isolation.READ_COMMITTED, rollbackFor=Throwable.class)
public void processImport() throws ServiceException, DatabaseException {
iImport import = new Import();
createImport(import);
throw new ServiceException("");
}
@Transactional(propagation=Propagation.REQUIRED, isolation=Isolation.READ_COMMITTED, rollbackFor=Throwable.class)
private void createImport(Import import) throws DatabaseException {
try {
importMapper.createImport(eventImport);
} catch (Exception e) {
throw new DatabaseException(e);
}
}
因此,希望在抛出异常后回滚createImport方法.但不幸的是,事实并非如此.
我在服务器context.xml中定义我的数据源
maxActive="100" maxIdle="30" maxWait="10000"
username="user" password="password" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@INFO" />
我正在寻找JNDI:
我正在使用Oracle数据库,并且JDBC规范表明默认情况下自动提交是真的.我认为,如果我明确地将其设置为false会有所帮助,但我无法弄清楚如何做到这一点.
有没有办法让回滚工作,同时通过JNDI查找Oracle数据源.