现在的项目由于我升级了Hibernate 3.x 到 4.x之后,已有的一个字段已经在Oracle数据库中映射为CLOB类型,原来3.x的映射方式如下:
@Lob
@Basic(fetch = FetchType.EAGER)
@Column(columnDefinition="CLOB", nullable=true)
public String getWkt() {
return wkt;
}
升级为4.x(4.2.6)之后出现了一个Exception:
java.lang.AbstractMethodError: oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava/io/Reader;J)V
at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$4$1.doBind(ClobTypeDescriptor.java:114)
.........
我在网上寻找了多中答案,还是没有解决,我找的答案有如下几种:
升级ojdbc驱动(问题依旧),我使用的驱动为ojdbc14.jar和ojdbc6.jar
增加Hibernate全局配置:hibernate.jdbc.use_streams_for_binary=true
增加Hibernate的Type注解:@Type(type="org.hibernate.type.MaterializedClobType")
以上的尝试问题仍没有解决!
所以我想求助各位前辈,能够给小弟一个正确的使用Hibernate 4.x 和JPA映射CLOB类型字段的例子?
各位不好意思,我已经找到问题了:是我自己粗心,使用的OJDBC的版本有问题,我很久前把老版本的JAR包放到JRE的LIB/EXT中导致了我在测试段更改OJDBC版本没有起作用。呵呵,谢谢各位!
解决办法:将ojdbc14.jar升级为ojdgc6.jar,在配合以上我的配置即可!
你好!我也遇到了类似的问题。
我将ojdbc14.jar升级为ojdbc6.jar,
修改了配置文件
@Lob
@Column(name="LOG_REQUEST_INFO",columnDefinition="CLOB", nullable=true)
private String logRequestInfo;
但是问题仍然没有得到解决,请问还有其他地方需要修改的吗?期待您的回复
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。