Database 如何在EJB3中为每个方法设置隔离级别

Database 如何在EJB3中为每个方法设置隔离级别,database,jakarta-ee,ejb-3.0,isolation-level,Database,Jakarta Ee,Ejb 3.0,Isolation Level,是否可以为给定的EJB3方法调用设置数据库隔离级别(即可序列化、可重复读取等) 我知道EJB规范没有涉及到这一点,所以关于如何在JBoss或Glassfish特定方式上实现这一点的详细信息将非常有用 我开始觉得这是不可能的,您只能为每个连接池设置它,这显然不是一个理想的解决方案。这确实不在规范中,但可以在支持时通过特定于应用程序服务器的部署描述符进行配置。例如,WebLogic会执行此操作,您可以在中的方法级别指定事务隔离: 例子 ... ... ... ... ... ... 我不知道JB

是否可以为给定的EJB3方法调用设置数据库隔离级别(即可序列化、可重复读取等)

我知道EJB规范没有涉及到这一点,所以关于如何在JBoss或Glassfish特定方式上实现这一点的详细信息将非常有用


我开始觉得这是不可能的,您只能为每个连接池设置它,这显然不是一个理想的解决方案。

这确实不在规范中,但可以在支持时通过特定于应用程序服务器的部署描述符进行配置。例如,WebLogic会执行此操作,您可以在中的方法级别指定事务隔离:

例子

...
...
...
...
...
...
我不知道JBoss或GlassFish是否有类似的版本(我无法访问该页面以找到GlassFish的答案)


作为替代方案,您是否尝试在给定的EJB方法中使用,即以编程方式配置隔离?

您能详细说明最后一句话吗?当您使用JPA,连接由依赖注入EntityManger处理时,是否有类似的机制可用?@Steve JPA假设一个
READ\u COMMITTED
隔离级别。某些提供程序可能允许对其进行调整(全局或每个查询),但这是特定于提供程序的。
<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>