2012-07-13 20 views
0

首先,我想說明我們的環境細節。需要關於動態SQL表的基於JPA的事務的信息

我們正嘗試使用EJB- Azure使用Eclipse在Azure雲上創建應用程序。

我們需要動態創建和處理數據庫。我們能夠動態地創建數據庫。然而,在試圖交易這些我們得到了一個錯誤:

"java.sql.SQLException: No suitable driver found for connection url"

,當我們試圖用靜態交易是沒有問題的。但是,動態交易無法完成。實體管理器對象已創建,但無法連接數據庫。

有人可以幫助我們解釋我們如何使用JPA處理動態創建的數據庫事務。

感謝, Saugata

[編輯]我們使用以下的persistence.xml:

>org.hibernate.ejb.HibernatePersistence java:jboss/EDS</jta-data-source> --> net.oauth.database.Co net.oauth.database.Cr

value="org.hibernate.transaction.JTATransactionFactory" /> value="org.hibernate.transaction.JBossTransactionManagerLookup" />

我們的代碼連接到數據庫如下: 地圖configOverrides =新的HashMap() ; configOverrides.put(「hibernate.connection.password」,「」); configOverrides.put(「hibernate.connection.username」,「」); configOverrides.put(「hibernate.connection.driver_class」,「com.microsoft.sqlserver.jdbc.SQLServerDriver」);
configOverrides.put(「hibernate.connection.url」,「jdbc:sqlsever://;」+「databaseName =; user =; password =」); EntityManagerFactory factory = Persistence.createEntityManagerFactory(ENTERPRISE_UNIT_NAME,configOverrides);

請注意,我們正在嘗試創建並動態連接到數據庫,因此不會靜態創建數據庫。 爲此,我們所得到的錯誤:

"java.sql.SQLException: No suitable driver found for connection url"

回答

0

創建一個持久性單元的persistence.xml,並把那裏的一切是靜態的(例如數據庫方言,記錄參數等)

然後使用下面的方法來創建實體管理器:

javax.persistence.Persistence.createEntityManagerFactory(String persistenceUnitName, Map properties); 

供應在地圖中的可變參數,如下所示:

properties.put("hibernate.connection.url", "jdbc:postgresql://127.0.0.1/test"); 
properties.put("hibernate.connection.username", "joe"); 
properties.put("hibernate.connection.password", "pass");