如何使用UCP配置Hibernate

时间:2013-07-25 12:31:46

标签: hibernate jdbc ucp

Oracle正在转向通用连接池(UCP)来维护可以借用,返回或关闭的池连接。我的webapplication具有自己的数据层。此应用程序将迁移以使用JPA和Hibernate。此时,我只能将Hibernate配置为使用Oracle JDBC驱动程序。

如何将Hibernate配置为使用UCP?

有关于如何使用c3p0的文档,但这对UCP不起作用。

这是我的Hibenate配置,其中没有UCP的JDBC连接:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
        <property name="hibernate.connection.url">jdbc:oracle:thin:@DBSERVER:1521:DATABASE</property> 
        <property name="hibernate.connection.username">username</property> 
        <property name="hibernate.connection.password">password</property> 
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>
        ....
        <mapping resource="Country.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

这些是UCP和JDBC的连接设置,可以在没有Hibernate的情况下直接访问:

PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setUser("username");
pds.setPassword("password");

pds.setConnectionFactoryProperty("driverType", "thin");
pds.setURL("jdbc:oracle:thin:@DBSERVER:1521:DATABASE");
pds.setInitialPoolSize(10);
pds.setMaxPoolSize(200);

1 个答案:

答案 0 :(得分:3)

您必须实现ConnectionProvider以将OracleConnectionPool与Hibernate连接起来。

以下是此类实施的示例:https://forum.hibernate.org/viewtopic.php?p=2452561