我已经成功地与2个数据库建立了连接,并且我能够从第一个数据库连接中选择,插入,更新和删除,但是在使用第二个数据库时,我能够获取数据,但我无法更新或保存数据库中的任何数据。
这是我的jpaContext.xml
第一个数据库连接的配置
<bean name="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${mdmDriverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</bean>
<bean
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
name="factory">
<property name="dataSource" ref="ds" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</prop>
<prop key="hibernate.hbm2ddl.auto">none</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.bmp.mdm_v1.entites</value>
</list>
</property>
</bean>
<bean name="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
<property name="sessionFactory" ref="factory" />
<property name="checkWriteOperations" value="false"></property>
</bean>
<bean name="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="factory" />
</bean>
第二个数据库的配置
<bean name="mdmDs" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${mdmDbUrl}" />
<property name="username" value="${mdmDbUsr}" />
<property name="password" value="${mdmDbPass}" />
</bean>
<bean
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
name="mdmFactory">
<property name="dataSource" ref="mdmDs" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</prop>
<prop key="hibernate.hbm2ddl.auto">none</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.bmp.stamp_biller.entites</value>
</list>
</property>
</bean>
<bean name="mdmTmp" class="org.springframework.orm.hibernate5.HibernateTemplate">
<property name="sessionFactory" ref="mdmFactory" />
<property name="checkWriteOperations" value="false"></property>
</bean>
<bean name="mdmTxnMang" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="mdmFactory" />
</bean>
这是我的dao实现
@Transactional
public void saveClientBiller(client_biller client_biller) {
try {
this.mdmTmp.saveOrUpdate(client_biller);
} catch (Exception e) {
System.out.println("Exception- " + e);
}
}
数据存储在数据库中,但在将数据保存在第二个数据库中后,我收到此错误
数据访问权限无效应用程序使用异常:没有正在进行的交易;嵌套异常为javax.persistence.TransactionRequiredException:没有正在进行的事务
我得到的解决方案,把@Transactional(值=“mdmTxnMang”),但当我这样做时,它会显示错误,如字符串不能转换为txType。
1条答案
按热度按时间pcww981p1#
确保你的进口是
下一步:尝试创建两个不同的TransactionManagers。将其中一个设置为transaction的属性。