首先,感谢您阅读我的问题并尝试帮助我并为我的英语道歉。
我正在尝试将 geojson 文件存储为 jsonb。我正在使用 Spring Boot (JPA + Hibernate) 和 Postgressql。
当我尝试上传 5 KB 的文件时没有问题。但是当我尝试上传一个 21 MB 的大文件时,我将不得不等待很长时间,并且网络显示超时。
如何增加绑定用于存储 json 数据的参数的时间?
你推荐更好的实施吗?
@Entity(name = "Scheme")
@Table(name = "maps_scheme")
@Access(AccessType.FIELD)
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
public class Scheme extends BaseEntityActivable implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SCHEME_SEQ_GEN")
@SequenceGenerator(name = "SCHEME_SEQ_GEN", sequenceName = "seq_scheme", allocationSize = 1)
@Column(name = "scheme_id")
private Long schemeId;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "description")
private String description;
@Type(type = "jsonb")
@Column(name = "tablegojson", columnDefinition = "jsonb", nullable = false)
private String tablegeojson;
}
控制器:
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@PermitAll
public SchemeVO createScheme(@Context final UriInfo uriInfo,
@NotNull(message = AxisMapsErrorConstants.JSON_FILE_CANT_BE_EMPTY) @FormDataParam(ApiParam.PARAM_FILE) final InputStream file,
@FormDataParam(ApiParam.PARAM_NAME) final String name,
@FormDataParam(ApiParam.PARAM_DESCRIPTION) final String description,
@FormDataParam(ApiParam.PARAM_ATTACHMENT_ID) final String attachmentId,
@FormDataParam(ApiParam.PARAM_FILE_PATH) final String filePath
) {
return schemeService.createScheme(AxisMapsUtil.getLoggedUsername(), name, description, file, attachmentId, filePath, SchemeVO.class);
}
我没有任何错误......只有当有更好的方法将插入数据增加为 jsonb 时。