需要有关动态SQL表的基于JPA的事务的信息

时间:2012-07-13 09:56:27

标签: sql hibernate

首先,我想说明我们的环境细节。

我们正在尝试使用EJB - Azure来使用Eclipse在Azure云上创建应用程序。

我们需要动态创建和交易数据库。我们能够动态创建数据库。但是,在尝试处理这些问题时,我们遇到了错误:

  

“java.sql.SQLException:找不到适合连接网址的驱动程序”

当我们尝试使用进行静态交易时,这不是问题。但是,无法完成动态事务。 entitymanager对象已创建,但无法连接数据库。

有人可以帮助我们并解释如何使用JPA处理动态创建数据库的事务。

谢谢, Saugata

[edit]我们使用以下persistence.xml:

  

> org.hibernate.ejb.HibernatePersistence      的java:JBoss的/ EDS< / JTA - 数据 - 源> - >      net.oauth.database.Co      net.oauth.database.Cr

     

    value =“org.hibernate.transaction.JTATransactionFactory”/>     value =“org.hibernate.transaction.JBossTransactionManagerLookup”/>                         

     

                                                       

     

  

我们连接数据库的代码如下:     映射configOverrides = new 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);

请注意,我们正在尝试动态创建并连接到db,因此不会静态创建db。 为此,我们收到错误:

  

“java.sql.SQLException:找不到适合连接网址的驱动程序”

1 个答案:

答案 0 :(得分: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");