我们可以有多个dataSources到单个数据库

use*_*890 5 java oracle spring jpa jdbc

我正在使用oracle作为数据库的spring webservice应用程序.现在我有使用weblogic服务器创建的数据源.还使用eclipse linkg JPA来执行读写事务(插入,读取和更新).现在我们想要将dataSource分开用于读取(读取)和wrtie(插入或更新)事务.

我当前的dataSource如下:

JNDI NAME : jdbc/POI_DS
URL : jdbc:oracle:thin:@localhost:1521:XE
Run Code Online (Sandbox Code Playgroud)

使用这个,我正在做读写事务.

如果我执行以下操作该怎么办:

JNDI NAME : jdbc/POI_DS_READ
URL : jdbc:oracle:thin:@localhost:1521:XE

JNDI NAME : jdbc/POI_DS_WRITE
URL : jdbc:oracle:thin:@localhost:1521:XE
Run Code Online (Sandbox Code Playgroud)

我知道使用XA数据源我们可以定义多个dataSource.没有XA dataSource,我可以做同样的事情.有没有人尝试过这种方法.

::更新::

谢谢大家,我已经按照解决方案实施了您的回复.

我采取了多种数据库方法.你将在哪里定义多个transactionManagersmanagerFactory.我只采用了在EntityManagerFactoryBean中引用的单个非xa dataSource(JNDI).

你可以在这里提供以下链接,这些链接用于多个dataSources 定义@transactional值的多数据源方法

还探讨了有关的事务管理器org.springframework.transaction.jta.WebLogicJtaTransactionManager,并org.springframework.orm.jpa.JpaTransactionManager为好.

use*_*ser 0

Spring 文档中有一篇关于此的有趣文章 -动态数据源路由。那里有一个示例,它允许您基本上在运行时切换数据源。它应该对你有帮助。如果您有任何更具体的问题,我很乐意为您提供更多帮助。

编辑:它告诉我们,实际用途是通过一种配置连接到多个数据库,但是您可以根据需要,使用不同的参数为一个数据库创建不同的配置。