java c3p0连接池保存或使用blob数据更新
我们面临c3p0连接池的问题。如果 在不保存blob数据的情况下保存,将blob添加到对象,然后会话保存方法失败。即使它不是异常处理程序,它也直接将最终阻塞 Where会话。flush引发断言异常,因为新id未分配给对象
这是任何人都面临的问题。这是配置的问题吗
休眠配置
组织。冬眠地方话MySQL5方言
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.connection.SetBigStringTryClob">true</prop>
<prop key="hibernate.jdbc.batch_size">100</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.generate_statistics">false</prop>
<prop key="org.hibernate.cache.ehcache.configurationResourceName">ehcache.xml</prop>
<prop key="hibernate.max_fetch_depth">4</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>
<prop key="hibernate.c3p0.min_size">10</prop>
<prop key="hibernate.c3p0.max_size">200</prop>
<prop key="hibernate.c3p0.acquire_increment">1</prop>
<prop key="hibernate.c3p0.timeout">1800</prop>
<prop key="hibernate.c3p0.max_statements">100</prop>
<prop key="hibernate.c3p0.idle_test_period">3000</prop>
<prop key="hibernate.c3p0.validationQuery">SELECT 1</prop>
<prop key="hibernate.connection.release_mode">after_transaction</prop>
<prop key="hibernate.id.new_generator_mappings">false</prop>
<prop key="hibernate.search.default.directory_provider">filesystem</prop>
<prop key="hibernate.search.default.indexBase" >/var/lucene/indexes</prop>
谢谢 莫辛
# 1 楼答案
捕获可丢弃对象并打印堆栈跟踪
catch( Throwable e){ e.printStackTrace(); }
得到
爪哇。lang.AbstractMethodError:方法com/mchange/v2/c3p0/impl/NewProxyPreparedStatement。setBinaryStream(ILjava/io/InputStream;J)V是抽象的 在com。麦克亨格。v2。c3p0。impl。NewProxyPreparedStatement。setBinaryStream(NewProxyPreparedStatement.java) 在org。冬眠类型描述符。sql。BlobTypeDescriptor$5$1。doBind(BlobTypeDescriptor.java:130) 在org。冬眠类型描述符。sql。BlobTypeDescriptor$2$1。doBind(BlobTypeDescriptor.java:86) 在org。冬眠类型描述符。sql。巴斯宾德。绑定(BasicBinder.java:73)
似乎C3P0JAR文件使用的是旧的、下载的更新版本0.0.95.2版本,它工作正常
谢谢