本文共 342 字,大约阅读时间需要 1 分钟。
在一次给别人写接口时,发现这样一个问题,当数据库用某字段的内容,Text类型的,使用Hibernate读取时,报这个错误:
然后我就网上查询资料,发现在数据库链接的Url中加入属性:useLOBs=false
why?
跑去jtds官网()查了一下:程序通过jtds去访问Sqlserver数据库时,默认将text/ntext,image等大数据封装成CLOB对象(字符大对象——用来存储单字节的字符数据),而CLOB对象默认没有实现toString()方法,所以直接调用只会打印对象的ID。官方解释是,采用CLOB封装这些对象,对应列的数据无需加载到内存中,如果直接打印出来很容易造成预料外的情况导致内存溢出。
解决方法:
在配置Recource时,指定数据的链接方式不适用CLOB