关于spring事务管理

先简单看看相关配置:



class="org.springframework.jdbc.datasource.DataSourceTransactionManager">




class="org.springframework.jdbc.core.JdbcTemplate">


……

不是我配的。我想问的是
1,里面有用于hibernate事务的HibernateTransactionManager和用于jdbc事务的DataSourceTransactionManager两个事务管理bean。可以多于一个吗?
2,如果可以。在配置中我没有发现dataSourceTransactionManager被任何地方用到过。他是不是在用到jdbcTemplate时spring会自己寻找dataSourceTransactionManager?
补充,现在是没有dataSourceTransactionManager这个bean时若使用oracle会游标只增不减。
[b]问题补充:[/b]
好像无法把分分给多个人。

6个回答

从目前的配置来看dataSourceTransactionManager并没有起到应有的作用,因为tx:annotation-driven的方式只能配置一种类型的事务;如果需要两种以上方式访问数据库的话就要分情况处理了;
1、如果只有一个数据源采用了hibernate和jdbc两种方式访问,那么在查询的时候不用处理事务,如果是更改的话可以考虑采用hibernate作为主导,然后手动调用SessionFactory的getCurrentSession().connection()获取到当前的connection然后手动维护事务的完整性;
2、如果是多个数据源,不同的数据源运用了不用访问的技术化,可以采取其它的方式配置,使不用的数据源拥有不同的事务;

用到jdbcTemplate时spring找的还是 这里配置的transactionManager

用到jdbcTemplate时spring找的还是 这里配置的transactionManager

这只是人家配了多种事务的管理方法,至于你要选择哪个事务,这是你后面开发的类是否要配这个事务,只要有选择其中一个,就有用到呀,没配就没用到吗。

只要有




就行啦

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">




可以不要

class="org.springframework.jdbc.core.JdbcTemplate">


应该是

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐