利用SpringMVC和Hibernate将图像存储到数据库中

利用SpringMVC和Hibernate将图像存储到数据库中,hibernate,spring-mvc,Hibernate,Spring Mvc,以下是我试图使用springMVC和Hiberrnate将图像存储到数据库时的错误消息 无法将类型为“org.springframework.web.multipart.commons.commons multipartfile”的属性值转换为属性所需的类型“java.sql.Blob” 我正在使用以下代码集:- 1) 在jsp中 3) 在控制器类中 @RequestMapping(value="/submitPartner1.do",method=RequestMethod.POST) p

以下是我试图使用
springMVC
Hiberrnate
将图像存储到数据库时的错误消息

无法将类型为“org.springframework.web.multipart.commons.commons multipartfile”的属性值转换为属性所需的类型“java.sql.Blob”

我正在使用以下代码集:-

1) 在jsp中

3) 在控制器类中

@RequestMapping(value="/submitPartner1.do",method=RequestMethod.POST)

 public String save(@ModelAttribute("partnerindividual")Partner partnerindividual,@RequestParam("file") MultipartFile file) throws IOException{

    Blob blob=null;
        try{
       byte[] contents = file.getBytes();
     blob = new SerialBlob(contents);
          partnerindividual.setImage(blob);
        //storing into database
        service.save(partnerindividual);
       }
       catch(Exception e){e.printStackTrace();}
       System.out.println(partindi);

return "becomeapartnerContinue";

}
}
(四) 在
spring\u config.xml中

    <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
    <property name="maxUploadSize" value="10000000" />
    </bean>

错误显示从文件字节到Blob的转换存在问题

您可以在控制器内对save()方法进行更改

替换代码行下面的内容

blob = new SerialBlob(contents);

        with

blob = Hibernate.createBlob(contents);

这里是会话对象,无论它是HttpSession还是HibernateSession对象……。感谢您指出它,createBlob(字节[])在Hibernate类中,它基本上是最后一个类。它仍然会导致相同的问题java.lang.IllegalStateException:无法转换类型的值[org.springframework.web.multipart.commons.commons multipartfile]转换为属性“image”所需的类型[java.sql.Blob]:未找到匹配的编辑器或转换策略]
    <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
    <property name="maxUploadSize" value="10000000" />
    </bean>
blob = new SerialBlob(contents);

        with

blob = Hibernate.createBlob(contents);