我开始用spring Boot 和angular做一个项目,我有一个数据库,我想在那里存储一个文件。我已经将这个列设置为Blob,但是在用文件填充我的数据库之后,Spring不想再工作了。
下面是我得到的错误:
ERROR[0;39m [35m19036[0;39m [2m---[0;39m [2m[nio-8080-exec-7][0;39m [36mo.a.c.c.C.[.[.[.[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [/alternance] threw exception [Request processing failed: org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class java.io.ByteArrayInputStream]] with root cause com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class java.io.ByteArrayInputStream and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[7]->com.alternance.dto.StageDTO["motivationFile"]->jdk.proxy2.$Proxy134["wrappedBlob"]->com.mysql.cj.jdbc.Blob["binaryStream"])
下面的代码似乎是问题所在:
import java.sql.Blob;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Stage {
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private Long id;
private Blob motivationFile;
有人能帮帮我吗
1条答案
按热度按时间ctehm74n1#
阅读错误,这可能发生在Jackson库(负责将传入和传出的请求/响应对象从json序列化(反序列化)为它们各自的对象,反之亦然。
您遇到的问题可能是以下两种情况之一,或者两者都有:
发送请求时,请确保使用表单数据内容类型。对于您的实体类,您必须使用@Lob注解字段,并可选地定义要保存的文件类型。例如