0

Hibernate 4 は jdbc4 を使用し、メソッド setBinaryStream(int, InputStream, int) のシグネチャが setBinaryStream(int, InputStream, long ) に変更されました。C3P0 は、この新しい方法をサポートしていません。

したがって、saveOrUpdate(myObjWithBlob) を呼び出すと、結果が得られます

java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy75.setBinaryStream(Unknown Source)

それで、私は今何ができますか?

1) c3p0 を使用しないでください。DHCP、BoneCP、または接続プールがまったくない。- 本当に私が望むオプションではありません。

2) どういうわけか、休止状態でこの新しいメソッドを呼び出さないようにしますか? 可能ですか?

3)休止状態3に戻すことも、私にとってはあまり良くありません。

4

1 に答える 1

8

c3p0 0.9.2-pre8 にアップグレードしてください (または 0.9.2 の最終版まで数日お待ちください)。この問題は、ライブラリの最近のリリースで解決されています。

更新: c3p0-0.9.2 がリリースされました。この問題は解決します。

于 2013-02-08T17:58:52.717 に答える