0

首先,感谢您阅读我的问题并尝试帮助我并为我的英语道歉。

我正在尝试将 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 时。

这是geojson的一个例子

4

0 回答 0