我无法找到在 ejb 中设置 TransactionIsolation 的方法。有人能告诉我如何设置吗?我正在用坚持。
我看过以下课程:
EntityManager、EntityManagerFactory、用户事务。他们似乎都没有像 setTransactionIsolation 之类的方法。我们需要更改 persistence.xml 吗?
我刚刚读了一本名为 Mastering EJB 3.0 第四版的书。他们给出了一个完整的 10 页关于隔离级别的理论,这个问题发生了,发生了,等等,但最后他们给出了这一段:-
"As we now know, the EJB standard does not deal with isolation levels directly,
and rightly so. EJB is a component specification. It defines the behavior and
contracts of a business component with clients and middleware infrastructure
(containers) such that the component can be rendered as various middleware
services properly. EJBs therefore are transactional components that interact
with resource managers, such as the JDBC resource manager or JMS resource
manager, via JTS, as part of a transaction. They are not, hence, resource
components in themselves. Since isolation levels are very specific to the
behavior and capabilities of the underlying resources, they should therefore be
specified at the resource API levels. "
它到底是什么意思?资源级 API 是什么意思?请帮我。如果持久性无法设置隔离级别,那么为什么他们在一本 EJB 书中给出如此庞大的理论并不必要地加重它的分量:(
正如 EJB 规范所述
事务不仅使工作单元的完成成为原子的,但它们也将工作单元彼此隔离,前提是系统允许并发执行多个工作单元。
- 用于管理隔离级别的 API是资源管理器特定的。 (因此,EJB架构没有定义用于管理隔离级别的 API.)
- Bean 提供者在设置隔离级别时必须小心。大多数资源管理器
要求事务中对资源管理器的所有访问使用相同的隔离级别完成.
- 对于会话 Bean 和消息驱动 Bean具有 Bean 管理的事务划分,Bean Provider 可以在企业 bean 的方法中以编程方式指定所需的隔离级别,使用资源管理器特定的 API。例如,java.sql.Connection.setTransactionIsolation
- 容器提供商应确保提供合适的隔离级别以保证实体 bean 的数据一致性
- 如果多个企业 Bean 在同一事务中访问同一资源管理器,则必须格外小心。必须避免所请求的隔离级别发生冲突。
我希望它能满足您的需求
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)