这篇文章给大家分享的是有关EJB事务属性的关键值有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
1、Required
如果客户端正运行在某个EJB事务中运行,且调用了EJB中的方法,则该方法在客户端的EJB事务中运行。如果客户端没有与某个EJB事务相关联,则容器在运行方法前先启动一个新EJB事务。Required属性适合绝大多数EJB事务,建议把它设置成默认的,至少在开发阶段。EJB事务属性是声明式的,后期也可以很容易的修改。
2、RequiresNew
如果客户端运行在某个EJB事务中,并且调用了EJB中的方法,则容器将采用如下操作:
(1) 挂起客户端EJB事务
(2) 启动一个新EJB事务
(3) 把调用委派给方法
(4) 方法执行完毕之后,回复客户端EJB事务
如果客户端没有与某个EJB事务相关联,则容器在运行方法前先启动一个新EJB事务。如果确保方法始终在一个新EJB事务中运行,应该使用EJB事物属性中的RequiresNew属性。
3、Mandatory
如果客户端运行在某个EJB事务中且调用了EJB中的方法,则该方法运行在客户端EJB事务中。如果客户端没有与某个EJB事务相关联,则容器抛出TransactionRequiredException。如果EJB中的方法必须使用客户端的EJB事务,则应该使用EJB事物属性中的Mandatory属性。
4、NotSupported
如果客户端在某个EJB事务中运行且调用了EJB中的方法,则容器先挂起客户端EJB事务,调用方法结束之后回复客户端EJB事务。如果客户端没有与某个EJB事务相关联,则容器在运行方法前不启动EJB事务.对于不需要EJB事务的方法,可以考虑该属性。EJB事务需要一定的开销,EJB事物属性中的NotSupported属性可以提高性能。
5、Supports
如果客户端运行在某个EJB事务中且调用了EJB中的方法,则该方法运行在客户端的EJB事务中。如果客户端没有与某个EJB事务关联,则容器运行方法前不启动新的EJB事务。
6、Never
如果客户端运行在某个EJB事务中且调用了EJB中的方法,则容器抛出RemoteException异常。如果客户端没有与某个EJB事务关联,则容器运行方法之前不启动新的EJB事务。
感谢各位的阅读!关于“EJB事务属性的关键值有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。