|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-10 关键字: 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中的注释(五)声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
浏览 230 次


