事务属性是企业 Bean 部署描述符中的值,调用企业 Bean 的方法时,EJB 容器将使用事务属性控制事务的范围。事务属性包括:
- Required--如果客户机未与事务关联,容器将在运行方法之前启动新的事务;如果客户机与事务关联,则在客户机的事务中执行方法。
- Requires New--只要客户机在事务中运行,容器都会启动一个新事务而挂起客户机的事务。
- Mandatory--在客户机的事务中执行方法。如果方法必须使用客户机的事务,则只能使用此属性;否则,容器将抛出异常。
- Not Supported--只在客户机生成的事务中执行方法,或者只执行方法而不启动事务。如果客户机正在事务中运行,容器将挂起该事务,调用该方法,然后再恢复客户机的事务。
- Supports--在客户机的事务中执行方法。如果客户机未在事务中运行,容器将运行方法而不启动新事务。由于无法预测具有此属性的方法的事务行为,因此应避免使用此属性,除非您对事务属性非常熟悉。
- Never--永远不在事务中执行方法。如果调用方法时客户机正在事务中运行,将抛出异常。