码迷,mamicode.com
首页 > 其他好文 > 详细

EJB3 事物

时间:2016-01-10 23:59:46      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:

在ejb3中事物分为两种类型:容器管理的事物(CMT)、Bean管理的事物(BMT)

1.容器管理的事物(CTN)

   是EJB默认的事物管理方式,即以对应的方法起始和结束来由EJB容器确定事务的始末边界,换言之就是方法开始事务开始,方法结束事务结束。

   不需要使用注解和手动启动事物。

   在该方式下,包含6中事物的传播方式。

    Required(默认):如果调用方法时上下文中包含事物,则在原事务中运行;如果没有事务,则开启一个新事务,在其中运行。

    Requires_New:若调用该方法时上下文中包含事物,则首先将原事务挂起,开启新事物运行,新事务结束,原来事务从挂起点继续执行;若没有,则开启一个新事务运行。

    Supports:和 Required 属性的不同点是,在没有事务的环境中不会开启一个新事务;如果存在事务的话则加入其中运行,这点和 Reuqired 相同。

    Not_Supported:调用该方法时上下文中存在事物,则事物挂起,方法不参与事物。若上下文中没有事物,不开启新事务,这点和 Supports 相同。

    Mandatory:调用该方法的上下文必须包含事物,如果不包含事务则会抛出异常;该属性不会自动开启新的事务;

    Never:用 Never 属性标注的方法或组件,不能在事务中运行。如果调用该方法或组件的客户端已经在事务中,则抛出异常。

@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRED)

     在该方式中,当EJB的方法中产生runtimeexception时便会自动进行回滚。

2.Bean管理的事物(BMT)

   在该方式中,事物是由Bean管理,即事物的开始和结束是由Bean对象中的代码所决定的,其事物的边界可以由人为的控制

EJB3 事物

标签:

原文地址:http://www.cnblogs.com/welv/p/5119718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!