Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring JPA具有两个实体管理器的单事务管理器_Java_Spring_Jpa_Transactions_Entitymanager - Fatal编程技术网

Java Spring JPA具有两个实体管理器的单事务管理器

Java Spring JPA具有两个实体管理器的单事务管理器,java,spring,jpa,transactions,entitymanager,Java,Spring,Jpa,Transactions,Entitymanager,我使用的是SpringJPA,xml配置如下 <!-- additional datasource end --> <tx:annotation-driven transaction-manager="transactionManager"/> <bean id="transactionManager1" class="org.springframework.orm.jpa.JpaTransactionManager" p:entityManagerFac

我使用的是SpringJPA,xml配置如下

<!-- additional datasource end -->
<tx:annotation-driven transaction-manager="transactionManager"/>

<bean id="transactionManager1" class="org.springframework.orm.jpa.JpaTransactionManager"
    p:entityManagerFactory-ref="entityManagerFactory1" />

<bean id="transactionManager2" class="org.springframework.orm.jpa.JpaTransactionManager"
    p:entityManagerFactory-ref="entityManagerFactory2" />

<bean
    id="org.springframework.context.annotation.internalPersistenceAnnotationProcessor"
    class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor">
    <property name="defaultPersistenceUnitName" value="entityManagerFactory1" />
</bean>
<bean id="entityManagerFactory1" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
    p:dataSource-ref="dataSource" p:persistenceUnitName="primary">
    <property name="jpaPropertyMap">
        <map>
        <!-- Map values-->          
        </map>
    </property>
</bean>

<bean id="entityManagerFactory2"        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
    p:dataSource-ref="dataSource" p:persistenceUnitName="primary">
    <property name="jpaPropertyMap">
        <map>
        <!-- Map values-->          
        </map>
    </property>
</bean>
其中,primary和secondary是在
persistence.xml
文件中指定的数据源

我使用的方法是在数据库1中插入数据,然后在数据库2中更新数据。对于插入我使用的是em1更新使用的是em2。我用同样的方法一行接一行地做

line-1  >  totalUpdation = em1.createNativeQuery(INSERTION_QUERY).executeUpdate();
line-2  >  totalUpdation = em2.createNativeQuery(UPDATION_QUERY).executeUpdate();
插入工作正常,但当使用em2执行第2行时,它会给出
TransactionRequiredException:For update/delete query


有谁能建议如何将单个TransactionManager与两个实体经理一起使用?

这是什么
p:qualifier value=“”
?@AlanHay:对不起,我忽略了一个输入错误,我编辑了问题这是什么
p:qualifier value=“/code>?@AlanHay:对不起,我忽略了一个输入错误,我编辑了问题
line-1  >  totalUpdation = em1.createNativeQuery(INSERTION_QUERY).executeUpdate();
line-2  >  totalUpdation = em2.createNativeQuery(UPDATION_QUERY).executeUpdate();