我有一個以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