java学习简单笔记20190312
2019-03-12 09:25 lofe 阅读(167) 评论(0) 编辑 收藏 举报spring的事务机制,提供了一个PlatformTransactionManager接口,
JDBC-->DataSourceTransactionManager
JPA-->JpaTransactionManager
Hibernate-->HibernateTransactionManager
JDO-->JdoTransactionManager
分布式事务-->JtaTransactionManager
在程序中定义事务代码
@Bean
public PlatformTransactionManager tranmaager(){
JpaTransactionManager t=new JpaTransactionManager();
t.setDataSource(datasource);
return t;
}
Spring支持声名式事务,即用注解 的方式,使用@Transactional,是一个基于AOP的实现操作,是来自org.springframework.transaction.annotation包的,
提供了一个@EnableTransactionManagement来开启事务,但springboot提供了开启,所以不用自己开启。
@Transactional不仅可以注解在类上,还可以注解在方法上,spring jpa默认对所有的方法都开启了事务支持,且查询类默认启用readOnly=true,propagationtion属 性Required如果两个方法,有现成的事务则用,没有则新建事务,如果发生错误,则全部回滚,required_new,如果方法B在方法中调用,B发生错误,不会全部回滚,只有错误的方法才回滚,
一般isolation隔离使用read_commit,