无法从multipartFile转换为Blob

时间:2016-12-31 15:23:47

标签: java spring thymeleaf

我想将文档保存到MySQL数据库。

我有以下控制器

 @RequestMapping(value = "/save", method = RequestMethod.POST)
    public String save(
            @ModelAttribute("document") @Valid Document document,
            BindingResult bindingResult,
            @RequestParam("content") MultipartFile file) {

并形成:

<form th:action="@{/save}" th:object="${document}"  method="post" enctype="multipart/form-data">

        <h4>Nazwa</h4>
        <input type="text" th:field="*{name}"/>
        <td style="color:red" th:if="${#fields.hasErrors('name')}" th:errors="*{name}"></td>

        <h4>Opis</h4>
        <input type="text" th:field="*{description}"/>
        <td style="color:red" th:if="${#fields.hasErrors('description')}" th:errors="*{description}"></td>

        <h4>zawartosc</h4>
        <input type="file" th:field="*{content}"/>
        <td style="color:red" th:if="${#fields.hasErrors('content')}" th:errors="*{content}"></td>

我不知道如何修复此错误:

  

无法转换类型的属性值   org.springframework.web.multipart.support.StandardMultipartHttpServletRequest $ StandardMultipartFile   到属性内容所需的类型java.sql.Blob;嵌套异常   是java.lang.IllegalStateException:无法转换类型的值   [org.springframework.web.multipart.support.StandardMultipartHttpServletRequest $ StandardMultipartFile]   要求属性内容的类型[java.sql.Blob]:没有匹配   编辑或转换策略发现

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试使用文件变量来保留。

如果您正确获取文件,请将file.getBytes()设置为blob字段,然后您应该能够保留它。