0
votes

Hello
i got a strange behavior.

Postgres 12

POSTGIS="2.5.4" [EXTENSION] PGSQL="120" GEOS="3.8.1-CAPI-1.13.3" PROJ="Rel. 6.3.2, May 1st, 2020" GDAL="GDAL 3.0.4, released 2020/01/28" LIBXML="2.9.7" LIBJSON="0.13.1" LIBPROTOBUF="1.3.0" RASTER

Java Postgis Dependency:

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

Code is:

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");

This results in following error:

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

But when i execute the update statement directly on psql it works fine.
Any other statements which do not include geometry columns also working fine.

Anyone got a clue?

Thanks!

1
You mean to say when you run UPDATE COORDINATES SET location = 'SRID=4326;POINT(13.3664665 52.573673)' where id = 1 directly, it updates correctly with no errors? - Scratte
yes, running this update in dbeaver works correctly without errors. - Donny

1 Answers

0
votes

Just found the issue. There is a trigger on this column. Dont know yet why theres a difference between java commit and dbeaver commit, but the trigger is the culprit.