我正在尝试将 Oracle UCP 配置为使用 Hibernate 在我的 Spring Boot 1.2.7 应用程序中工作。我目前有 c3p0 工作,但我需要支持 Oracle RAC。
我意识到 Hibernate 不直接支持 Oracle UCP,但是 Oracle 的这个文档似乎说我可以使用它:
https://blogs.oracle.com/dev2dev/entry/how_to_use_oracle_universal
此外,我还发现了一些较旧的示例,这些示例演示了如何制作 Bean 和/或使用 XML 进行配置,但我目前没有 XML 配置。另外,我认为 Spring 在这一点上可以从 application.properties 文件和 pom.xml 中完成这一切。
在我的 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>
对于休眠,我有:
<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)
如果有人可以让我知道正确的属性或指向我当前的文档,我将不胜感激,谢谢!