那么,怎么做才能使两个表记录一致,采取事务机制,只有下面这样书写才能实现真正事务:
在EJB方法中写两个方法,因为EJB方法体缺省是一个事务。
public void updateUser(){
updateTabel1();//更新table1
updateTable2(); //更新table2
}
关于EJB自动的事务机制,最近也有一个道友做了测试,对于JBoss中容器管理的事务的疑惑。
如果你从事关键事务,就是带money相关操作的事务,这种粗粒度机制可能害苦你,那么,似乎有一种办法可弥补事务,不使用EJB容器事务(CMT),在service中使用Spring的事务机制。
如果使用Spring事务机制,业务核心又在POJO中实现,那么我有一个疑问:还要套上EJB干什么?至此,你终于明白,Spring本质是和EJB竞争的,如果硬套上EJB使用,只是相借助其集群分布式功能,而这个正是Spring目前所缺少的。
我太惊异Spring精巧的诡异了,他和EJB关系,正如异型和人的关系一样。
为了避免你每次使用Spring时想到粘糊糊的异型,不如Spring without EJB,这也正是Spring的初衷,也是它的一个畅销书名。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/