Hibernate 如何将multipartfile转换为Blob类型

Hibernate 如何将multipartfile转换为Blob类型,hibernate,Hibernate,您好,我正在将图像保存到DB中,我正在将图像作为多部分并尝试转换为Blob类型。 我采用这种方法: Blob blob=Hibernate.getLobCreator(sessionFactory.getCurrentSession()).createBlob(multipartFile.getInputStream(),multipartFile.getSize()); 但是在执行时获取空指针异常。 该文件无法将多部分转换为Blob,这是将图像保存到DB的任何其他方法 MultipartFi

您好,我正在将图像保存到DB中,我正在将图像作为多部分并尝试转换为
Blob
类型。 我采用这种方法:

Blob blob=Hibernate.getLobCreator(sessionFactory.getCurrentSession()).createBlob(multipartFile.getInputStream(),multipartFile.getSize());
但是在执行时获取
空指针异常。
该文件无法将多部分转换为
Blob
,这是将图像保存到DB的任何其他方法

MultipartFile savedFile;
savedFile=itemView.getImgFile();//file from model attribute 
Blob blob=Hibernate.createBlob(savedFile.getInputStream()); // hibernate method for create blob 
//Save method will be call here 
我遵循了上面的教程

您可以使用这种方法。 获取多部分数据并将其转换为字节数组,然后转换为Blob

for (MultipartFile file : productsBean.getData()) {
    byte[] bytes = file.getBytes();
    Blob blob = new javax.sql.rowset.serial.SerialBlob(bytes);
    }

它对我有用:)

当我使用
createBlob()
方法时,我得到了一个错误
当我使用
createBlob()方法时,类型Hibernate的createBlob(InputStream)是未定义的,因为它在Hibernate版本4中已被弃用。这不是一种有效的方法,因为它将整个数据(字节数组)从多部分对象加载到内存(RAM)(不包含数据,但包含对数据的引用)。