我有一个使用Hibernate的Eclipse插件。我使用的Hibernate jar是我安装的JBOSS Tools插件的一部分。我迁移到Eclipse 4.2 Juno并更新了我的JBOSS Tools for Juno。休眠没有找到适合jdbc的驱动程序
现在我的问题是,我现在的代码不再工作。对我来说,它似乎是一个HIbernate和我的应用程序之间的ClassLoader问题。
我有加载动态JDBC驱动程序的代码。我使用扩展URLClassLoader的类加载jar,并使用DriverManager注册一个假驱动程序。接下来,我建SessionFactory的,则得到会议,则交易
Session hbmSession = mySessionFactory.getCurrentSession();
Transaction tx = hbmSession.getTransaction();
当我打电话
DriverManager.getConnection(<my_jdbc_url>,<user>,<pwd>);
我能得到Connection对象回来,但时我打电话给会话beginTransaction()这是它炸毁的地方
if (tx == null || !tx.isActive()) {
tx = hbmSession.beginTransaction();
}
并抛出此错误:
Caused by: java.sql.SQLException: No suitable driver found for
jdbc:oracle:thin:@190.255.10.10:1521:DBID
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
这很奇怪,因为它也调用DriverManager来获取连接。任何线索?
感谢您的帮助!
感谢您的回复。我没有物理地使用hibernate.cfg.xml,但是我通过编程创建了它,并将所有数据库的东西放在那里。我认为这很好。我的旧代码至少适用于Hibernate 3.4。我更新到Eclipse 4.2,我认为它使用Hibernate 3.6。出于某种原因,它不再工作。我想问题是Hibernate没有看到我使用我的ClassLoader动态加载的驱动程序。 – Che