我必须使用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,在调试时也不会调用它。