【发布时间】:2020-10-28 18:16:28
【问题描述】:
我正在使用 postgresql 运行 spring boot 2 和 myBatis。 我在我的数据库中安装了 postgis 扩展。 从我的应用程序运行查询时 - 我收到错误:
PSQLException: error: type "geometry" does not exist.
在 PGAdmin 中运行相同的查询 - 我得到结果,这意味着扩展安装成功。 在没有几何参数的情况下从 Java 运行查询时 - 也成功。 这是来自mybatis的查询:
"<select id="selectMyFilters" parameterType="map" resultType="FilterOptions">
select ${column} as value,
from myFilters where
${column} is not null
<if test="geometry != null">
and (
<![CDATA]
ST_WITHIN (myGeo :: geometry, ST_SETSRID(ST_GeomFromGeoJSON('${geometry}'),4326))
GROUP BY ${column};
</select>"
MyGeo 列也已在 db 中定义为 GEOGRAPHY(POINTZ,4326)
我已经花了 2 天时间,但找不到问题。
有人可以帮忙吗?
【问题讨论】:
-
确保安装 postgis 的架构(默认为公共)在用户搜索路径中。
-
是的,它在那里,它在pgAdmin中成功运行
-
确保是同一用户,并且您的应用中没有代码重置搜索路径!
-
“确保它是同一个用户” - 我该怎么做?
-
检查您的应用配置! (即,也许应用程序在“app_user”下运行,而您在“slava”下的 pgadmin 中进行测试)
标签: java postgresql postgis mybatis