
自己开始使用注解的时候,不知道为什么总是有错误,好像参考了一本书的方法,一直有错,然后参考了下面的方法成功了,好像是在设置hibernate事务管理器代理类的bean时,应该是ref='sessionFactory',自己写成了reflocal='sessionFactory'如
步骤一、在spring配置文件中引入命名空间
xmlns:xsi='http://.w3.org/2001/XMLSchema-instance'
xmlns:tx='http://.springframework.org/schema/tx'
xsi:schemaLocation='http://.springframework.org/schema/beans
'>
步骤二、具有@Transactional 注解的bean自动配置为声明式事务支持
<</span>bean><</span>propertyref='sessionFactory' /> </</span>bean><</span>tx:annotation-driventransaction-manager='defaultTransactionManager'proxy-target-class='true' />
步骤三、在接口或类的声明处 ,写一个@Transactional.
要是只在接口上写, 接口的实现类就会继承下来、接口的实现类的具体方法,可以覆盖类声明处的设置
@Transactional //类级的注解、适用于类中所有的public的方法
事务的传播行为和隔离级别
大家在使用spring的注解式事务管理时,对事务的传播行为和隔离级别可能有点不知所措,下边就详细的介绍下以备方便查阅。
事物注解方式: @Transactional
当标于类前时, 标示类中所有方法都进行事物处理 , 例子:
@Transactional public class TestServiceBean implements TestService{}
当类中某些方法不需要事物时:
@Transactional public class TestServiceBean implements TestService{ private TestDao dao; public void setDao(TestDao dao) { this.dao =dao; } @Transactional(propagation = Propagation.NOT_SUPPORTED)public ListgetAll() { return null; } }
事物传播行为介绍:
@Transactional(propagation=Propagation.REQUIRED)
如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED)
容器不为这个方法开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW)
不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATORY)
必须在一个已有的事务中执行,否则抛出异常
@Transactional(propagation=Propagation.NEVER)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25800-1.html
上次台海军演就是信号
才能有效制止战争
是一条
宋茜