Spring Boot 1.2.7, Hibernate и Oracle UCP

Я пытаюсь настроить Oracle UCP для работы в приложении Spring Boot 1.2.7 с Hibernate. В настоящее время у меня работает c3p0, но мне нужно для поддержки Oracle RAC.

Я понимаю, что Oracle UCP напрямую не поддерживается Hibernate, но этот документ от Oracle, похоже, говорит, что я могу его использовать:

http://blogs.oracle.com/dev2dev/entry/how_to_use_oracle_universal

Кроме того, я нашел несколько старых примеров, которые демонстрируют, как создать Бин и / или настроить с помощью XML, но в настоящее время у меня нет конфигурации XML. Кроме того, я думаю, что Spring на данный момент может сделать все это из файла application.properties и pom.

В моем pom для Oracle у меня есть:

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc7</artifactId>
        <version>12.1.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ucp</artifactId>
        <version>12.1.0.2</version>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ons</artifactId>
        <version>12.1.0.2</version>
    </dependency>

Для Hibernate у меня есть:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.3.Final</version>
    </dependency>           
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>4.3.11.Final</version>
    </dependency>

Я понимаю, что могу удалить зависимость c3p0.

Что меня смущает, так это какие свойства указывать. Я думаю, что мне нужно это:

spring.datasource.driverClassName=oracle.jdbc.pool.OracleDataSource
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.properties.hibernate.connection.driver_class = oracle.jdbc.pool.OracleDataSource
spring.datasource.url=jdbc:oracle:thin:@mydb.mycomp.com:1521:abcde
spring.datasource.username=user
spring.datasource.password=pass
spring.jpa.properties.hibernate.connection.username=user
spring.jpa.properties.hibernate.connection.password=pass
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
spring.jpa.properties.hibernate.connection.provider_class = oracle.jdbc.pool.OracleDataSource
spring.datasource.maxPoolSize = 10
spring.datasource.initialPoolSize = 5

Когда я запускаю это, я получаю:

java.sql.SQLException: oracle.jdbc.pool.OracleDataSource cannot be cast to java.sql.Driver
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:280)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:200)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:708)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:642)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:464)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:141)

Если бы кто-то мог сообщить мне правильные свойства или указать текущие документы, я был бы очень признателен, спасибо!

0 ответов

Другие вопросы по тегам