Java 事务管理器don';我不承担这笔交易
我正面临一个问题,我真的不知道如何抓住猫尾巴(如果你给我开个玩笑:哦)) 我在战争中有一个webapp,在tomcat中部署。这场战争包含4个罐子。 4个JAR有4个applicationContext、4个entityManager和4个TransactionManager 这样声明(更改数字1..):Java 事务管理器don';我不承担这笔交易,java,spring,jpa,spring-transactions,spring-orm,Java,Spring,Jpa,Spring Transactions,Spring Orm,我正面临一个问题,我真的不知道如何抓住猫尾巴(如果你给我开个玩笑:哦)) 我在战争中有一个webapp,在tomcat中部署。这场战争包含4个罐子。 4个JAR有4个applicationContext、4个entityManager和4个TransactionManager 这样声明(更改数字1..): 取决于=“entityManagerFactory1”name=“transactionManager1”/> 上下文如下所示: 我的问题是,当我使用3的BO时,事务是以2的数据源打开的
取决于=“entityManagerFactory1”name=“transactionManager1”/>
上下文如下所示:
我的问题是,当我使用3的BO时,事务是以2的数据源打开的
此外,如果我坚持,我会得到以下信息:
AbstractSaveEventListener-由于没有正在进行的事务而延迟标识插入
但是如果我单独启动jar1(例如),那么一切都可以完美地工作
非常感谢您的启示。让我猜猜:
在servlet-context.xml中,是否导入上下文?e、 g:
<import location="classpath:context1.xml" />
<import location="classpath:context2.xml" />
现在,用
@Transactional1
注释JAR1中的所有方法,用@Transactional2
注释JAR2中的所有方法。该机制在一节中有说明,非常感谢!我使用XML风格的事务声明,因为我的spring版本有点旧。
<import location="classpath:context1.xml" />
<import location="classpath:context2.xml" />
@Transactional("tx1")
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
public @interface Transactional1 {}