EJB3学习笔记之 EJB3中的注释(五)
关键字: ejb3 ejb注释 ejb学习笔记
10. 事务管理服务
最有用的容器服务可能就是事务管理服务,当应用出现失败或异常时,它保证了数据库的完整性。你可以简单地将为一个 POJO 方法申明它的事务属性。这样容器就可以在合适的上下文中运行这个方法。最常见的事务是定义在 session bean 的方法上,方法中所有的数据库操作只有在方法正常退出时才会提交,如果方法抛出未捕获的异常,事务管理将回滚所有的变更。
@TransactionAttribute 注释用作定义一个需要事务的方法。例如:
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void insertProduct(String name, Float price, boolean error) {
…
…
}
它可以有以下参数:
a. REQUIRED : 方法在一个事务中执行,如果调用的方法已经在一个事务中,则使用该事务,否则将创建一个新的事务。
b. MANDATORY : 方法必须在一个事务中执行,也就是说调用的方法必须已经有一个事务,否则新抛出一个错误( ERROR )。
c. REQUIRESNEW : 方法将在一个新的事务中执行,如果调用的方法已经在一个事务中,则暂停旧的事务。
d. SUPPORTS : 如果方法在一个事务中被调用,则使用该事务,否则不使用事务。
e. NOT_SUPPORTED :如果方法在一个事务中被调用,将抛出一个错误( ERROR )
如果没有指定参数, @TransactionAttribute 注释使用 REQUIRED 作为默认参数。
11. Entity 的生命周期和状态
在 EJB3 中定义了四种 Entity 的状态:
a. 新实体 (new) 。 Entity 由应用产生,和 EJB3 Persistence 运行环境没有联系,也没有唯一的标示符 (Identity) 。
b. 持久化实体 (managed) 。新实体和 EJB3 Persistence 运行环境产生关联(通过 persist(), merge() 等方法 ) ,在 EJB3 Persistence 运行环境中存在和被管理,标志是在 EJB3 Persistence 运行环境中有一个唯一的标示 (Identity) 。
c. 分离的实体 (detached) 。 Entity 有唯一标示符,但它的标示符不被 EJB3 Persistence 运行环境管理 , 同样的该 Entity 也不被 EJB3 Persistence 运行环境管理。
d. 删除的实体 (removed) 。 Entity 被 remove() 方法删除,对应的纪录将会在当前事务提交的时候从数据库中删除。
EJB3学习笔记之 EJB3中的注释(一)
EJB3学习笔记之 EJB3中的注释(二)
EJB3学习笔记之 EJB3中的注释(三)
EJB3学习笔记之 EJB3中的注释(四)
EJB3学习笔记之 EJB3中的注释(五)
- 16:54
- 浏览 (510)
- 评论 (0)
- 分类: JavaEE技术
- 进入论坛
- 发布在 JBoss SEAM 圈子
- 相关推荐
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 49487 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
共 12 张
最近加入圈子
最新评论
-
Gwt-Ext学习笔记之基础篇
请问:为什么我的没有这项出来呢?在 Configurations中选择 Cypa ...
-- by bh_nesta -
Gwt-Ext学习笔记之中级篇
我增加了一个搜索的.代码入下: GridSearc ...
-- by pindai -
Birt报表金额大小写转换
hmm,推荐把这样的代码作为一个函数保存在一个js文件里。见BIRT英文论坛ht ...
-- by RogerTu -
请大家给我估价,上海地区 ...
chinata 写道 julycn 写道: 有两三家企业给了offer,(o ...
-- by vwpolo -
请大家给我估价,上海地区 ...
你太精通了,全被你研究透了,是的无价!
-- by soleghost






评论排行榜