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();
}
Благодарю.