是否可以为给定的ejb 3方法调用设置数据库隔离级别(即可序列化、可重复读取等)?
我知道这不在ejb规范中,所以关于如何在jboss或glassfish特定的方式上实现这一点的细节将是非常好的。
我开始觉得这是不可能的,而且您只能为每个连接池设置它,这显然不是一个理想的解决方案。

最佳答案

规范中确实没有涉及这一点,但在支持时可以通过应用服务器特定的部署描述符进行配置。例如,weblogic可以在weblogic-ejb-jar.xml中的方法级别指定事务隔离:
例子

<transaction-isolation>
  <isolation-level>...</isolation-level>
  <method>
      <description>...</description>
      <ejb-name>...</ejb-name>
      <method-intf>...</method-intf>
      <method-name>...</method-name>
      <method-params>...</method-params>
  </method>
</transaction-isolation>

我不知道jboss或glassfish是否有类似的功能(我无法访问SupportWLDDInContainers页面来找到glassfish的答案)。
作为替代方案,您是否尝试在给定的ejb方法中使用Connection#setTransactionIsolation(int),即以编程方式配置隔离?

关于database - 如何在EJB 3中为每个方法设置隔离级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/585968/

10-13 05:58