【发布时间】:2018-01-27 02:27:13
【问题描述】:
我在 PostgreSQL 中有一个包含 2 列的表 - Id 和坐标。 列“coord” - 以 JSON 格式存储为字符串的地理坐标。
例子:
[{"lat":49.09693425316379,"lng":33.61747393628419},{"lat":49.11835977646441,"lng":33.638456496907},{"lat":49.12103137811804,"lng":33.63866144845382},{"lat":49.09694682809236,"lng":33.61746879914138},{"lat":49.08920750204137,"lng":33.61734796797724},{"lat":49.07643862058337,"lng":33.61246117651179}]
如何发送 JSON 对象数组等字符串(POST 请求)。
没有getter和setter的实体
public class Lepcoord implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "tplnr")
private String tplnr;
@Size(max = 2147483647)
@Column(name = "coord")
private String coord;
控制器
@POST
@RequestMapping(value= "/lep/{voltage}", method = RequestMethod.POST, headers = "Accept=application/json")
@ResponseBody
public ResponseEntity<List<Lepcoord>> lep (@PathVariable String voltage)
{
return new ResponseEntity<>(gisDaoService.lep(voltage), HttpStatus.OK);
}
还有服务
@Transactional(readOnly = true)
public List <Lepcoord> lep (String voltage) {
Query query = this.em.createQuery(
" From Lepcoord ");
List <Lepcoord> rez = null;
try {
rez = (List<Lepcoord>) query.getResultList();
} catch (PersistenceException r) {
return null;
}
return rez;
}
如果我在 Postgre 中将坐标存储为 json,Hibernate 无法处理 json 类型。可能有人知道更简单的方法。不要编写自己的类来使用 Postgres json 类型
【问题讨论】:
-
您的实际要求非常清楚。如何解析?如何通过 AJAX 发送?你有你已经尝试过的代码,以便我们理解问题吗?
-
更新了我的问题。一切都是正确的。但正如您所看到的,答案将是 - tplnr:“String”,coord:“String”。我需要将坐标作为 json 数组发送。
标签: json postgresql hibernate spring-mvc jpa