Я могу получить соединение, используя JDBC
OracleDataSource ds = (OracleDataSource) Class.forName("oracle.jdbc.pool.OracleConnectionPoolDataSource").newInstance();
//...
Connection connection = ds.getConnection("USER", "PASSWORD");
Но я не могу сделать это для Hibernate, используя hibernate.connection.datasource и jni:
Я пробовал разные варианты, но это не работает.
String var1 = "oracle.jdbc.pool.OracleConnectionPoolDataSource";
String var2 = "java:/oracle.jdbc.pool.OracleConnectionPoolDataSource";
String var3 = "java:/oracle/jdbc/pool/OracleConnectionPoolDataSource";
String var4 = "java:/OracleConnectionPoolDataSource";
configuration.setProperty("hibernate.connection.datasource",var1);
Все варианты генерируют исключения при попытке собрать SessionFactory:
private static SessionFactory createSessionFactory(Configuration configuration) {
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
builder.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = builder.build();
return configuration.buildSessionFactory(serviceRegistry);
}
Исключения как это:
Exception in thread "main" org.hibernate.engine.jndi.JndiException: Error parsing JNDI name [oracle.jdbc.pool.OracleConnectionPoolDataSource]
maven зависимостей для него:
<dependency>
<groupId>local.ora9iDriver</groupId>
<artifactId>ora9iDriver</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/Users/micah/.m2/repository/local/ora9iDriver/oraDriver/1.0/ora9i.jar</systemPath>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>9.0.2.0.0</version>
</dependency>