28、Java EE 事务管理与性能测试

Java EE 事务管理与性能测试

1. 持久化客户信息

在示例中,我们选择将事务开始操作 begin() 嵌入到拦截器类中,该拦截器类会拦截 BMT 会话 bean 的方法。当然,我们也可以向客户端暴露 beginTransaction() 调用。由于我们采用了当前的方法,现在只需调用 persistEntity() 方法,它会隐式地开始事务(但不会提交事务):

// 持久化客户信息,依赖级联设置持久化所有相关的购物车项实体。
// 重新分配客户信息以获取 EJB 容器在持久化时分配的 ID 值。
orderProcessorBMT.persistEntity(customer);

事务上下文不会扩展到客户端线程本身,它仅存在于会话 bean 的线程中。在拦截器内部调用 UserTransaction.begin() 会在该线程上建立一个事务上下文,当调用会话 bean 的 persistEntity() 方法时,该上下文可供会话 bean 使用。

2. 创建客户订单

当前生效的事务会继续进行创建客户订单的步骤。此阶段与无状态 CMT 示例类似,不同之处在于事务已经创建,并且必须在结束时显式提交。

// 创建客户订单并从购物车项创建订单项
final CustomerOrder customerOrder =
        orderProces
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值