Hibernate看不到OJDBC6驱动程序

时间:2016-02-12 18:23:16

标签: java spring oracle hibernate jdbc

我的项目有问题,我尝试在不使用hibernate.cfg.xml文件的情况下配置hibernate,我这样做:

use_frameworks!
pod 'SwiftR'

它无法看到我的构建路径中的OJDBC6驱动程序,当我使用hibernate.cfg.xml文件时,我看到了当我尝试避免使用文件时,我得到了这个:

  

警告:HHH000181:假设应用程序将提供连接,则没有遇到任何适当的连接提供程序   lut 12,2016 7:26:06 PM org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator initiateService   警告:HHH000342:无法获取与查询元数据的连接:应用程序必须提供JDBC连接   2016年1月12日下午7:26:06 org.hibernate.dialect.Dialect

我做错了什么?我尝试过使用这两个jdbc驱动程序类: oracle.jdbc.driver.OracleDriver 和 oracle.jdbc.OracleDriver

仍然没有运气:(

2 个答案:

答案 0 :(得分:0)

我的最后一次尝试,使用hibernate 5,取自它所说的aPI和手册。

protected void setUp() throws Exception {
    // A SessionFactory is set up once for an application!
    final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
            .applySettings(configuration.getProperties() // configures settings from Configuration object
            .build();
    try {
        sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
    }
    catch (Exception e) {
        // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
        // so destroy it manually.
        StandardServiceRegistryBuilder.destroy( registry );
    }

This是hibernate 5的快速入门,而不是单独调用configure,您需要传递使用属性创建的配置对象。

答案 1 :(得分:0)

我找到了解决方案:

更改此内容:

.setProperty("connection.url", "jdbc:oracle:thin:@"+hostname)
.setProperty("connection.username", username)
.setProperty("connection.password", password)

对此:

.setProperty("hibernate.connection.url", "jdbc:oracle:thin:@"+hostname)
.setProperty("hibernate.connection.username", username)
.setProperty("hibernate.connection.password", password)

解决了这个问题。也许这将有助于将来的某些人。