mxcsdn 2010-05-01
EJB中:
容器管理的事务
Nerver:不参与事务,如果参与产生RemoteException
NotSupported:不能参与
Supports:如果调用者正在参与事务,相应的EJB调用也可以参与事务,否则不能
Mandatory如果调用者有一个事务,相应的EJB可以参与事务,否则,TransactionRequiredException
Required如果调用者有一个事务,相应的EJB可以参与事务,否则,容器将在调用相应的EJB之前,开始一个事务.
当方法调用完成以后,即提交该事务.
RequiresNew在调用相应的EJB之前,开始一个新的事务,当方法调用返回时,即提交这个事务.
Spring中:
PROPAGATION_MANDATORY:一个方法必须在一个现存的事务中进行,否则丢出异常。
PROPAGATION_NESTED:在一个嵌入的事务中进行,如果不是,则同PROPAGATION_REQUIRED.
PROPAGATION_NEVER:指出不应在事务中进行,如果有就丢出异常。
PROPAGATION_NOT_SUPPORTED:指出不应在事务,如果有就暂停现存的事务。
PROPAGATION_REQUIRED:支持现在的事务,如果没有就建立一个新的事务。
PROPAGATION_REQUIRED_NEW:建立一个新的事务,如果现存一个事务就暂停它。
PROPAGATION_SUPPORTS:支持现在的事务,如果没有就以非事务的方法执行。