Как установить свойство hibernate.c3p0.timeout программно? - PullRequest
0 голосов
/ 23 января 2019

Рассмотрим приведенный ниже код. Я пробовал несколько способов установить свойство timeout, но ни один из них, похоже, не работает. В документации по hibernate говорится, что нужно использовать «hibernate.c3p0.timeout», но это не сработало.

https://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/session-configuration.html

@Bean
public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
    HibernateTransactionManager txManager = new HibernateTransactionManager();
    txManager.setSessionFactory(sessionFactory);
    return txManager;
}

@Bean
public LocalSessionFactoryBean sessionFactory() throws PropertyVetoException {
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
    sessionFactory.setDataSource(getDataSource());
    sessionFactory.setPackagesToScan(new String[] {"com.myproject"});
    sessionFactory.setHibernateProperties(additionalProperties());

    return sessionFactory;
}

@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
    return new PersistenceExceptionTranslationPostProcessor();
}

Properties additionalProperties() {
    Properties properties = new Properties();
    properties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
    properties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
    properties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
    properties.setProperty("hibernate.jdbc.batch_size", env.getProperty("hibernate.jdbc.batch_size"));

    //I've tried each of the following (one at a time obviously) but none of them work
    properties.setProperty("hibernate.c3p0.checkout_timeout", "1000");
    properties.setProperty("hibernate.c3p0.timeout", "1000");
    properties.setProperty("c3p0.checkout_timeout", "1000");
    properties.setProperty("c3p0.timeout", "1000");
    return properties;
}

Во всем коде, когда я печатаю ниже, я всегда получаю «Timeout: -1»

System.out.println("Timeout: "+sessionFactory.getCurrentSession().getTransaction().getTimeout());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...