Jakarta ee Bean管理的事务:事务传播

Jakarta ee Bean管理的事务:事务传播,jakarta-ee,jpa,transactions,ejb,bean-managed-transactions,Jakarta Ee,Jpa,Transactions,Ejb,Bean Managed Transactions,我是EJB新手。我已经读到,bean管理事务(BMT)的一个副作用是,如果我们调用另一个bmtbean的方法,事务不会传播。 但是由于第三个ACID属性(隔离),这是否意味着第二个方法(内部)不会看到在第一个方法(外部)中所做的更改?Bean管理的事务只意味着您自己在Bean中编码事务边界 而容器管理的事务意味着您让容器(即应用程序服务器)执行打开、关闭、回滚等脏活。。。你的交易为你 在这两种情况下,通常使用一些中央事务管理器来访问当前事务或创建新事务 这是否意味着第二个方法(内部)不会看到 在

我是EJB新手。我已经读到,bean管理事务(BMT)的一个副作用是,如果我们调用另一个bmtbean的方法,事务不会传播。
但是由于第三个ACID属性(隔离),这是否意味着第二个方法(内部)不会看到在第一个方法(外部)中所做的更改?

Bean管理的事务只意味着您自己在Bean中编码事务边界

容器管理的事务意味着您让容器(即应用程序服务器)执行打开、关闭、回滚等脏活。。。你的交易为你

在这两种情况下,通常使用一些中央事务管理器来访问当前事务或创建新事务

这是否意味着第二个方法(内部)不会看到 在第一种方法中制造(外部)


如果您在两种方法中使用相同的TransactionManager(和相同的事务),则内部方法应该可以看到外部方法的更改。

Bean管理的事务仅意味着您自己在Bean中编码事务边界

容器管理的事务意味着您让容器(即应用程序服务器)执行打开、关闭、回滚等脏活。。。你的交易为你

在这两种情况下,通常使用一些中央事务管理器来访问当前事务或创建新事务

这是否意味着第二个方法(内部)不会看到 在第一种方法中制造(外部)


如果在两个方法中使用相同的TransactionManager(和相同的事务),则内部方法应该看到外部方法的更改。

但是如何在两个无状态bean的两个方法中使用相同的事务/事务管理器,例如。我是否需要传递它们是方法参数?使用EJB时,您可以使用@Resource注释插入EJBContext,然后调用context.getUserTransaction()来获取事务。您不需要将事务从外部方法传递到内部方法,因为您使用的框架(例如用于数据库访问的hibernate)会自动使用当前打开的事务。但是如何在两个无状态bean的两个方法中使用相同的事务/事务管理器,例如,我需要传递is方法参数吗?使用EJB时,您可以使用@Resource注释插入EJBContext,然后调用context.getUserTransaction()来获取事务。您不需要将事务从外部方法传递到内部方法,因为您使用的框架(例如,用于数据库访问的hibernate)会自动使用当前打开的事务。