Oracle Lob Prefetch с JPA и c3p0

Мне нужно улучшить производительность поиска Oracle Lob в приложении Java JPA.

Существует хорошо документированная настройка производительности с параметром oracle.jdbc.defaultLobPrefetchSize, но этот документ работает с низкоуровневыми классами, такими как OracleConnection или OracleStatement.

Как установить этот параметр lob в контексте c3p0, JPA?

На уровне соединения:

@Bean
public DataSource dataSource() throws SQLException, PropertyVetoException {       
    ComboPooledDataSource dataSource = new ComboPooledDataSource();
    dataSource.setJdbcUrl(this.dbProperties.getProperty("jdbc.url"));
    dataSource.setUser(this.dbProperties.getProperty("jdbc.username"));
    datasource.setPassword(this.dbProperties.getProperty("jdbc.password"));
    dataSource.setDriverClass(this.dbProperties.getProperty("jdbc.driver"));            
    return dataSource;
}

@Bean
public LocalContainerEntityManagerFactoryBean myEmf() throws SQLException, PropertyVetoException {
    LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
    lef.setDataSource(dataSource());
    lef.setJpaVendorAdapter(jpaVendorAdapter());            
    lef.setJpaProperties(this.dbProperties);        
    return lef;
}

На уровне запроса:

@Transactional(readOnly=true)
public List<Data> findByXXX(String xxx) {        
    // Make/execute the typed query.
    return this.entityManager.createQuery("SELECT d FROM Data d WHERE d.xxx = :xxx", Data.class)
            .setParameter("xxx", xxx)
            .getResultList();
}

Благодарю.

0 ответов

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