EJB事务属性理解
程序员文章站
2022-03-11 08:59:40
...
1、Required
当需要EJB总是运行在事务当中时使用Required属性。如果当前已经存在一个运行事务,EJB将加入该事务;如果
没有运行的事务存在,则EJB容器将新建一个事务。
2、RequiresNew
当你希望你的EJB被调用是运行在一个新的事务中时使用RequiresNew属性。如果此时已经有一个运行的事务,该事务将被挂起,一个新的事务将在你的EJB调用过程中存在,当该过程结束后,老的事务将恢复。
3、Supports
当EJB使用Supports事务属性时,如果当前存在一个运行事务,那么该bean将运行在这个事务当中,如果不存在则该bean将运行在一个非事务的环境中。
4、Mandatory
Mandatory要求bean被调用时,必须存在一个运行的事务,否则将抛出javax.ejb.EJBTransactionRequiredException异常。
5、NotSupported
如果你设置你的EJB事务属性是NotSupported,那么你的bean将不会运行在事务当中去。如果一个带有事务的bean调用你的ejb那么该事务将被挂起直至你的bean运行结束。
6、Never
如果设置成Never,你的ejb将不允许在事务中调用,否则抛出javax.ejb.EJBException异常。