【发布时间】:2015-10-27 07:27:33
【问题描述】:
我正在尝试使用自定义数据持久化器来持久化 postgres POINT(x,y),但 ORMLite 坚持用引号将我的值括起来,Postgres 拒绝了。
我从数据库得到的错误:
错误:类型点的输入语法无效:“POINT(-115.17913055419922,36.08929443359375)”
这是它在 SQL 中的样子:
插入一些几何值 (POINT(-119.234,36.089))
这里是持久化器的重要部分:
public PGpointDataPersister() {
super(SqlType.OTHER, new Class[] {PGpoint.class});
}
public Object javaToSqlArg(FieldType fieldType, Object javaObject) throws SQLException {
if (javaObject == null) {
return null;
}
PGpoint pt = (PGpoint) javaObject;
return "POINT(" + pt.x + "," + pt.y + ")";
}
根据 Postgresql 的文档,JDBC 驱动程序应该支持这一点。见https://jdbc.postgresql.org/documentation/80/geometric.html。
我正在使用 ORMLite 4.48 和官方的 postgresql JDBC4 驱动程序。
我怎样才能做到这一点?
【问题讨论】:
-
我创建了一个自定义类型的 PGpointType,以便在转换之前将其保存到数据库中:stackoverflow.com/questions/53548731/…
标签: java postgresql ormlite