论坛首页 Java企业应用论坛

编程使用Spring事务管理,图解事务传播行为

浏览 20307 次
该帖已经被评为良好帖
作者 正文
   发表时间:2012-03-30  
xiangdefei 写道
物理事务指数据库本身的事务?逻辑事务指spring事务?
还有比如你的例子当userService.save()方法里调用addressService.save()方法。userservice.save()方法的事务属性是require,addressService.save()方法的事务属性是supports,那么此时addressService.save()方法会使用外围的事务,那么当addressService.save()方法抛出异常,导致事务回滚,会不会也会导致它外围的事务也回滚?


物理事务指数据库本身的事务?逻辑事务指spring事务? 是的

会的  他们在一个逻辑事务(也在一个物理事务)
0 请登录后投票
   发表时间:2012-03-30  
楼主人真心不错,上次还专门就spring session 管理的事情发站内信问楼主,楼主很热心哈。连顶10次
0 请登录后投票
   发表时间:2012-03-30  
jiuyuehe 写道
楼主人真心不错,上次还专门就spring session 管理的事情发站内信问楼主,楼主很热心哈。连顶10次


谢谢 支持  
0 请登录后投票
   发表时间:2012-03-30  
jiuyuehe 写道
楼主人真心不错,上次还专门就spring session 管理的事情发站内信问楼主,楼主很热心哈。连顶10次


人品一定要好,,技术可以学,人品很难学 哈哈哈 尽自己所能 会的就分享
0 请登录后投票
   发表时间:2012-09-03  
我想问一种情况,我想好久都想不明白。主要对底层不太了解。
我用JPA(hibernate)实现的。
Service接口中有两个方法

dao

@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
select() {
  // @Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
   dao.selectById();
}

@Transactional
update() {
  select();
}
我看LOG4J日志发现:创建两个事务,为什么不是三个方法 Adding transactional method。
04:44:12,173 DEBUG AnnotationTransactionAttributeSource:106 - Adding transactional method 'updateAddress' with attribute: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; ''
04:44:12,175 DEBUG DefaultListableBeanFactory:245 - Returning cached instance of singleton bean 'transactionManager'
04:44:12,176 DEBUG JpaTransactionManager:331 - Found thread-bound EntityManager [org.hibernate.ejb.EntityManagerImpl@1cbc5cb] for JPA transaction
04:44:12,176 DEBUG JpaTransactionManager:365 - Creating new transaction with name [com.glory.maven.ssj.core.service.UserServiceImpl.updateAddress]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; ''
04:44:12,178 DEBUG JpaTransactionManager:400 - Exposing JPA transaction as JDBC transaction [org.springframework.orm.jpa.vendor.HibernateJpaDialect$HibernateConnectionHandle@1be2b55]
11
04:44:12,179 DEBUG AnnotationTransactionAttributeSource:106 - Adding transactional method 'selectById' with attribute: PROPAGATION_SUPPORTS,ISOLATION_DEFAULT,readOnly; ''
04:44:12,179 DEBUG DefaultListableBeanFactory:245 - Returning cached instance of singleton bean 'transactionManager'
04:44:12,179 DEBUG JpaTransactionManager:331 - Found thread-bound EntityManager [org.hibernate.ejb.EntityManagerImpl@1cbc5cb] for JPA transaction
04:44:12,179 DEBUG JpaTransactionManager:470 - Participating in existing transaction
其中select这个方法的事务方法都没有设置。


0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics