在我目前正进行的一个项目中,需要操作SQL SERVER的BLOB数据,并且项目中采用了Hibernate。但是却遇到了困难。 多方查证,说是MS JDBC驱动的问题。不知道有没有好的方法解决?问题大致如下:
1、数据表结构如下: create table t_file ( id varchar(64) primary key, fileName varchar(100), fileSize int, contentType varchar(100), fileData image )
2、TFile的HBM文件(略)
3、写BLOB数据 这段好象不会有问题,能够正常执行。 代码如下: TFileContent tfilecontent = new TFileContent(); tfilecontent.setFileName(file.getFileName()); tfilecontent.setFileSize(new Integer(file.getFileSize())); tfilecontent.setContentType(file.getContentType()); tfilecontent.setFileData(Hibernate.createBlob(file.getInputStream())); session.save(tfilecontent);
4、读BLOB数据 问题主要在这段,会报Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unsupported data conversion.之类的错误。代码如下: strsql = "select tf.fileData from TFile as tf"; List list2 = session.find(strsql);
如果先取出主键值(ID),然后再LOAD对象,也会报错。
|
|