如何在 EJB 3 中设置每个方法的隔离级别
是否可以为给定的 EJB 3 方法调用设置数据库隔离级别(即可串行化、可重复读取等)?
据我所知,EJB 规范并未涵盖这一点,因此有关如何以 JBoss 或 Glassfish 特定方式执行此操作的详细信息将非常有用。
我开始觉得这是不可能的,你只能为每个连接池设置它,这显然不是一个理想的解决方案。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这确实没有被规范涵盖,但可以在支持时通过应用程序服务器特定的部署描述符进行配置。 例如,WebLogic 就是这样做的,您可以在
weblogic-ejb-jar.xml
:我不知道 JBoss 或 GlassFish 是否有等效项(我无法访问 SupportWLDDInContainers 页面查找 GlassFish 的答案)。
作为替代方案,您是否尝试使用
Connection#setTransactionIsolation(int)
在给定的 EJB 方法中使用 ie 以编程方式配置隔离?This is indeed not covered by the spec and but can be configured through application server specific deployment descriptors when supported. WebLogic does for example and you can specify transaction isolation at the method level in the
weblogic-ejb-jar.xml
:I don't know if JBoss or GlassFish have an equivalent (I couldn't access the SupportWLDDInContainers page to find an answer for GlassFish).
As an alternative, did you try to use
Connection#setTransactionIsolation(int)
inside a given EJB method using i.e. configuring isolation programmatically?