C3p0 с ошибкой Hibernate 4.2: setCharacterStream(ILjava/io/Reader;J)V является абстрактным

Я использую Hibernate 4.2 с c3p0 и получаю эту ошибку:Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.setCharacterStream(ILjava/io/Reader;J)V is abstract

Кто-нибудь знает, какую версию я должен использовать? Вот мой текущий список зависимостей Maven:

<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.2</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>4.2.0.Final</version>
</dependency>        

person hasan    schedule 08.02.2015    source источник


Ответы (3)


PreparedStatement.setCharacterStream() был добавлен в JDBC 4 и в соответствии с примечаниями к выпуску C3P0. :

Начиная с версии 0.9.5 c3p0 полностью поддерживает спецификацию jdbc4.

Поэтому вам необходимо обновить библиотеку C3p0 до версии 0.9.5:

<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5</version>
</dependency>

Вы также можете исключить зависимость C3P0 из Hibernate, чтобы убедиться, что Maven использует ту, которую вы явно настроили:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>4.2.0.Final</version>
    <exclusions>
        <exclusion>
            <artifactId>c3p0</artifactId>
            <groupId>c3p0</groupId>
        </exclusion>
    </exclusions>
</dependency>
person Vlad Mihalcea    schedule 08.02.2015
comment
Более старые версии c3p0 также могут проскальзывать из других библиотек. В нашем случае это был Кварц 2.2.2 - person LateralFractal; 13.11.2015
comment
На самом деле у меня есть обновленные библиотеки, но почему-то в логах написано Initializing c3p0-0.9.1.1. Я проследил эту настоящую строку до tika-app-1.10.jar, но понятия не имею, куда идти дальше... - person Nyerguds; 23.11.2015

В моем случае после перехода на спящий режим 4 мне пришлось добавить c3p0-0.9.5.jar и mchange-commons-java-0.2.15.jar (jar, потому что это это не проект maven)

person paka    schedule 04.05.2018
comment
В моем случае также сработало (только разница, что это работало с 0.9.2): JAR ОБНОВЛЕНО до c3p0-0.9.2.1.jar, JAR ДОБАВЛЕНО = mchange-commons-java-0.2.3.4.jar - person rvd; 18.08.2019

используйте артефакт Id c3p0 0.9.5.2, все в порядке!

<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
</dependency>
person ohundre    schedule 30.06.2017