我有一个以oracle为数据库的spring webservice应用程序。现在我有使用weblogic服务器创建的数据源。还使用eclipse linkg JPA来执行读取和写入事务(插入,读取和更新)。现在我们要分开dataSources以读取(读取)和wrtie(插入或更新)事务。我们可以有多个数据源到单个数据库吗
我目前的数据源是如下:使用此
JNDI NAME : jdbc/POI_DS
URL : jdbc:oracle:thin:@localhost:1521:XE
,我做的读取和写入数据。
如果我做到以下几点:
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
我知道使用XA数据源,我们可以定义多个数据源。我可以在没有XA数据源的情况下做同样的事情吗?有没有人尝试过这种方法?
::更新::
谢谢大家的回答,我已经实现了以下解决方案。
我采取了多种数据库方法。您将在其中定义多个transactionManagers
和managerFactory
。我只采用了单一的非xa数据源(JNDI),它在EntityManagerFactory
Bean中被引用。
,你可以在这里冷藏箱以下链接它们是多个数据源 Multiple DataSource Approach defining @transactional value
上的事务管理器org.springframework.transaction.jta.WebLogicJtaTransactionManager
和org.springframework.orm.jpa.JpaTransactionManager
还探讨为好。
quick问题,URL属性定义为金,银,铜等不同。 JDBC:HSQLDB:HSQL://本地主机:$ {} db.port.gold /博客。在我的情况下,如果使用相同的东西,它有任何问题。另外我使用EclipseLink作为我的JPA。让我先执行这个方法。 – user1268890
只需创建一个具有READ和WRITE属性的Enum,它可以以相同的方式工作。根据需要提供所需的属性。我不认为会有关于JPA提供者的其他问题。 – user