将多边形对象持久保存到postgres中的问题

时间:2014-09-02 04:14:10

标签: json hibernate polygon

我必须使用hibernate 4将数据保存到postgres。我有一个像这样的json字符串,我需要持久保存到数据库中:

{
    "tags": null,
    "status": "Active",
    "modifiedBy": "user",
    "deleteStartedOn": 0,
    **"boundary": [
        {
            "latitude": -10,
            "longitude": -10
        },
        {
            "latitude": -10,
            "longitude": 10
        },
        {
            "latitude": 10,
            "longitude": 10
        },
        {
            "latitude": 10,
            "longitude": -10
        },
        {
            "latitude": -10,
            "longitude": -10
        }
    ],**
    "createdOn": 1407867173216,
    "modifiedOn": 1407867173216,
    "revision": 1,
    "deleteStartedBy": null,
    "createdBy": "user",
    "description": null,
    "name": "NCR",
    "spId": 1
}

如果我没有将边界标记包含在json中,那么一切都很好。但是当我将边界标记与经度和经度包含在一起时。我得到例外:

org.springframework.http.converter.HttpMessageNotReadableException:无法读取JSON:无法从START_ARRAY标记中反序列化org.postgis.Polygon的实例

引起:com.fasterxml.jackson.databind.JsonMappingException:无法从START_ARRAY标记中反序列化org.postgis.Polygon的实例  在[来源:java.io.PushbackInputStream@755ed6df; line:5,column:25](通过引用链:com.main.model.Market [" boundary"])

Json字符串有效

我也将展示我的模型,其中存储了边界         @TypeDef(name =" PolygonUserType",typeClass = GeometryUserType.class) @Type(类型=" PolygonUserType&#34)     私人多边形边界;

public Polygon getBoundary() {
    System.out.println("Boundary checked get");
    return boundary;
}

public void setBoundary(Polygon boundary) {
    System.out.println("Boundary checked set");
    this.boundary = boundary;
}

我使用的Polygon是org.postgis.polygon

@TypeDef(name =" PolygonUserType",typeClass = GeometryUserType.class)有一个自定义类GeometryUserType,在调试时也不会调用它。

0 个答案:

没有答案