【问题标题】:Java with MyBatis postgreql postgis query - type geometry does not exist errorJava 与 MyBatis postgreql postgis 查询 - 类型几何不存在错误
【发布时间】: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


【解决方案1】:

将公共方案添加到搜索路径(除了您从中获取数据的方案),因为 gis 安装在公共方案中

【讨论】:

    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2011-10-23
    • 2019-11-04
    • 1970-01-01
    • 2023-01-20
    • 2016-05-07
    相关资源
    最近更新 更多