有人知道为什么当我尝试使用Hibernate将字符串持久化到Mysql数据库时会出现这个异常吗?
Exception in thread "main" java.lang.AbstractMethodError: Method org/apache/commons/dbcp/DelegatingPreparedStatement.setCharacterStream(ILjava/io/Reader;J)V is abstract该列的注释如下所示:
@Lob
@Column
private String data;我使用的是Hibernate版本5.2.11和mysql-connector-java 5.1.44,这是我能找到的最新版本。大多数人建议升级组件来修复此错误。关于我应该做什么,还有其他的想法吗?
发布于 2017-10-16 05:25:47
在oracle驱动程序中,hibernate会自动将大字符串更改为Clob (如果您在DB中更改了数据类型)。但在MySql中,我看到了这个问题,于是我从字段中删除了Lob,并将字符串的长度改为4k。像这样
@Column(name ="foo" , length = 4000)因为默认长度是255。但是对于大于4k的字符串,我需要使用Clob,并通过添加以下属性来解决它:
name="hibernate.connection.SetBigStringTryClob">true</property>https://stackoverflow.com/questions/46760036
复制相似问题