Postgis, Update Geometry Column With Java



你好
我有一个奇怪的行为

Postgres12

POSTGIS="2.5.4";[EXTENSION]PGSQL=";120〃;GEOS=";3.8.1-CAPI-1.13.3";PROJ=";Rel.6.3.2,2020年5月1日";GDAL=";GDAL 3.0.4,发布于2020/01/28";LIBXML=";2.9.7";LIBJSON=";0.13.1〃;LIBPROTOBUF=";1.3.0";光栅

Java Postgis依赖:

<dependency>
<groupId>net.postgis</groupId>
<artifactId>postgis-jdbc</artifactId>
<version>2.5.0</version>
</dependency>

代码为:

Connection connection = DriverManager.getConnection(url, props);
((org.postgresql.PGConnection) connection).addDataType("geometry", PGgeometry.class);
Statement statement = connection.createStatement();
statement.execute("UPDATE COORDINATES SET location = 'SRID=4326;POINT(13.3664665 52.573673)' where id = 1");

这导致以下错误:

ERROR: function st_makepoint(double precision, double precision) does not exist

但是,当我直接在psql上执行update语句时,它工作得很好
任何其他不包括几何体列的语句也可以正常工作。

有人知道线索吗?

谢谢!

刚刚发现问题。此列上有一个触发器。还不知道为什么java提交和dbeaver提交之间有区别,但触发器才是罪魁祸首。

最新更新