首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

出现EntityManager.createQuery不可理解错误的Postgres/PostGIS st_distance_sphere函数

出现EntityManager.createQuery不可理解错误的Postgres/PostGIS st_distance_sphere函数是因为在使用Postgres数据库和PostGIS扩展时,EntityManager.createQuery方法无法理解st_distance_sphere函数。

解决这个问题的方法是使用原生的SQL查询来执行st_distance_sphere函数。可以通过以下步骤来实现:

  1. 获取数据库连接:首先,需要获取到数据库连接,可以使用EntityManager的unwrap方法获取到底层的Connection对象。
  2. 创建原生SQL查询:使用Connection对象创建一个原生的SQL查询,可以使用PreparedStatement来预编译SQL语句,然后设置参数。
  3. 执行查询:执行查询并获取结果。

下面是一个示例代码:

代码语言:txt
复制
import org.postgresql.util.PGobject;

// 获取数据库连接
Connection connection = entityManager.unwrap(Session.class).connection();

// 创建原生SQL查询
String sql = "SELECT st_distance_sphere(?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);

// 设置参数
PGobject point1 = new PGobject();
point1.setType("geometry");
point1.setValue("POINT(1 2)");
statement.setObject(1, point1);

PGobject point2 = new PGobject();
point2.setType("geometry");
point2.setValue("POINT(3 4)");
statement.setObject(2, point2);

// 执行查询
ResultSet resultSet = statement.executeQuery();

// 处理结果
if (resultSet.next()) {
    double distance = resultSet.getDouble(1);
    System.out.println("Distance: " + distance);
}

// 关闭连接和结果集
resultSet.close();
statement.close();
connection.close();

在上面的示例中,我们使用了原生的SQL查询来执行st_distance_sphere函数,并获取到了计算得到的距离。

这是一个解决EntityManager.createQuery不可理解错误的Postgres/PostGIS st_distance_sphere函数的方法。希望对你有帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PostgreSQL与PostGIS基础入门

PostGIS提供简单空间分析函数(如Area和Length)同时也提供其他一些具有复杂分析功能函数,比如Distance。...同时,PostGIS也提供了相应支持函数,如AddGeometryColumn和DropGeometryColumn。...数据库坐标变换 球体长度运算 三维几何类型 空间聚集函数 栅格数据类型 二、安装 如何安装PostgreSQL + PostGIS请参考:《如何安装PostgreSQL + PostGIS请点击》。...PostgreSQL 3.1.1 psql登陆 # 切换用户 su postgres # 执行psql命令 psql 默认连接postgres数据库,会出现postgres=#”字符串,执行效果如下图所示.../docs/9.6/index.html Postgres中文社区:http://www.postgres.cn/v2/home 关于PostGIS官方学习资料如下,请参考: 英文官方资料:http:

5.7K31

深入探索地理空间查询:如何优雅地在MySQL、PostgreSQL及Redis中实现精准地理数据存储与检索技巧

要注意数据坐标系,并在进行距离计算时选择合适函数,以避免因坐标系不同而导致错误结果。 希望这些技巧和注意事项能够帮助您更加熟练地在MySQL中处理地理空间数据!...在执行查询时,要确保你坐标数据顺序和坐标系是正确,以避免出现错误查询结果。...虽然在本示例中我们使用是 2D 空间数据,但 PostGIS 也支持 3D 空间数据存储和查询,请根据您需求选择合适数据类型和函数。 3....在处理3D空间数据时,要确保所有的数据都包含完整3D坐标信息,以避免查询错误。 在使用空间函数进行复杂查询时,要充分理解函数用法和语义,以构建正确查询逻辑。...在这个过程中,我们不仅要关注各个数据库在地理空间查询上功能特性,更要理解它们背后工作原理和适用场景,这样我们才能在实际应用中做出明智技术选择。

65810
  • win10安装PostgreSQL12.6

    \PostgreSQL\postgresql-12.6 账户名:postgres 密码:123456 这里安装出现了问题,原因是之前已经安装过了 在安装目录找到 uninstall-postgresql.exe.../log start 这里启动遇到了以下错误,因为目录权限问题 等待服务器进程启动 ....拒绝访问。 已停止等待 pg_ctl: 无法启动服务器进程 检查日志输出....如果出现以下报错是因为安装时没有成功创建用户,需要手动创建 psql: 错误: 致命错误: 角色 "postgres" 不存在 cmd命令行进入安装目录bin目录下执行以下命令,创建postgres...用户 createuser -s -r postgres psql -p 5432 -U postgres 四、添加postgis依赖 1、下载postgis安装包 postgis官网:http://postgis.net...postgresql安装目录一致 之后弹出提示一直选择yes即可(空间数据库一些配置) 安装完成之后可看到空间数据库已经添加 3、手动添加空间函数支持 -- Enable PostGIS

    1.9K30

    详解Linux中PostgreSQL和PostGIS安装和使用

    yum install postgresql-server postgresql postgis 初次安装后,默认生成一个名为 postgres 数据库和一个名为 postgres 数据库用户。...$PGDATA = "/usr/local/pgsql/database" 但是执行了 pg_ctl start 之后,会出现错误: pg_ctl: directory "/usr/local/pgsql...在 psql 中设置一下密码——需要注意是,这里设置密码并不是 postgres 系统帐户密码,而是在数据库中用户密码: postgres=# \password postgres 然后按照提示输入密码就好...版本不同,路径会有些差异,主要是路径中包含版本信息: $ sudo su postgres $ createdb template_postgis $ createlang plpgsql template_postgis...:也就是前面的 template_postgis dbuser:你账户名,我一般使用 postgres 导入 .sql 文件 sudo su postgres psql \c newdb \i demo.sql

    3.4K31

    PostGIS导入导出栅格数据

    可以看到有一个rid和rast列,rid是以一个整形对插入栅格数据进行标示,rast列类型是raster存储了具体数据。 ---- 如果想要导出数据,可以使用PostGIS提供内置函数。...其中ST_AsGDALRaster 是一个通用性函数,可以导出为GDAL支持任意格式。...此外,还有ST_AsPNG,ST_AsJPEG和ST_AsTIFF等函数,提供了直接导出到指定格式,并且接受更少参数。...第二个问题是:这些内置函数提供导出结果是PostgreSQLbytea (byte array)数据类型,我们需要自己写程序进行转换成实际图像文件。...我这里直接贴出代码,因为代码很容易理解。ST_AsTIFF函数参见:http://postgis.net/docs/RT_ST_AsTIFF.html。

    4.5K20

    postgresql安装时there has been an error error. running win10下安装postgresql打开报错

    # suozhang333 # 提出需要新建windows用户postgres 然后用runas /user:postgres cmd.exe打开安装软件,大家也可以试试 # qq_...我用户名为纯英文,但也遇到这个问题,如果用户名含中文应该都是需要新建win用户,像我一样的话就可能听天由命…现在想尝试到底怎么解决这个问题,但又遇不到这个错误了,真是无奈… 目前有效解决方法...PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数支持,将PostgreSQL数据库管理系统转换为空间数据库。...postGIS插件http://www.postgis.org/ postGIS教程https://blog.csdn.net/qq_35732147/article/details/85158177.../details/52014737 注:创建数据库后,需要通过添加postgis插件,才可以转换为空间数据库,才可以导入空间数据,具体操作见postGIS教程 ArcGIS连接PostgreSQL

    7.8K51

    进阶数据库系列(二十五):PostgreSQL 数据库日常运维管理

    --出于安全,回收任何用户在publiccreate权限 revoke create on schema public from public; 收回函数执行权限 /* * pg中函数默认公开...zxvf postgis-3.2.1.tar.gz cd postgis-3.2.1/ ....扩展 create extension postgis; --验证栅格类数据需要raster扩展 create extension postgis_raster; --如果安装带有sfcgal,验证下三维...*,不要返回用不到任何字段,另外表结构发生变化也容易出现问题。...管理规范 数据订正时,删除和修改记录时,要先select,避免出现误删除,确认无误才能提交执行; 用户可以使用explain analyze查看实际执行计划,但是如果需要查看执行计划设计数据变更,

    1.1K20

    PostGIS空间数据库简明教程

    简而言之 - PostGIS 是一个 Postgres 扩展,增加了对存储和操作空间数据类型支持。 当我们构建在地图上存储、操作和可视化数据软件应用程序时,我们通常需要使用空间数据存储。...在我们使用 PostGIS 功能之前,我们需要在 Postgres 中安装扩展:CREATE EXTENSION IF NOT EXISTS postgis;1、空间数据类型PostGIS 支持几种不同类型...相同语法可以应用于栅格列,但在这种情况下,我们在栅格图像周围索引边界框,因此该语句需要包含 ST_ConvexHull 函数。...(24, 47, 25, 48, 4326));将提示如下错误:ERROR: ST_Intersects: Operation on mixed SRID geometries (Polygon, 4979...,该多边形可以与另一个多边形相交而不会出现错误

    2.9K30

    01 . PostgreSQL简介部署

    支持复杂多表JOIN查询SQL:JOIN算法支持 hash join、merge join。 # 4 .支持窗口函数 ,可以改成复杂分析函数,因为分析函数包括了窗口函数。 # 5....多进程架构,更加稳定,单机可以支持更高访问量数据库。 # 6. 有功能强大,性能优秀GIS插件Postgis。 为什么要使用PostgreSQL?...任何系统都有他性能极限,在高并发读写,负载逼近极限下,PG性能指标仍然可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而MySQL明细出现一个波峰后下滑。...POSTGIS远远强于MySQLmy spatial而采用PGSQL。...PG有极其强悍SQL编程能力,有丰富统计函数和统计语法支持,比如分析函数(Oracle叫法,PG里面叫Window函数),还可以用多种语言来写存储过程,对于R支持也很好。

    1.1K40

    Postgresql extension 挑挑拣拣 (1)

    POSTGRESQL extension 经常可以反客为主,把postgresql 变成POSTGIS 数据库就是一个extension功劳。...5 -Z 上面的命令意思是执行vacuum 但操作中不进行重排序,对于postgres数据库中 test schema 中test 表进行 try 操作,并开启5个线程,但不对表进行分析 具体操作命令...= all all - 是包含所有的sql 语句其中包含了函数 top -仅仅跟踪执行语句其中包含函数不会被跟踪, none - (不跟踪) pg_stat_statements.track_utility...在应用中,尤其在OLAP情况下,对于大表分析等等是非常耗费查询时间,而即使我们使用select table 方式,这张表也并不可能将所有的数据都装载到内存中,而pg_prewarm功能就是完成一个张表全部进入到内存中功能...当然postGIS 应该被列到第一名,虽然他是extension, 但他工作范围远远大于一个extension范围,应该把她列为一种数据库类型,所以这里就略过了。 ?

    67640

    Postgres空间地理类型POINT POLYGON实现附近定位和电子围栏功能

    通过比较9位到5位前缀,来获取附近5米到3km之内坐标,为了寻求更快定位方法,测试一下postgres空间类型。 安装插件postgis 先安装了pg-10, 并且是通过yum安装。...两个点之间距离 距离计算函数 ST_Distance 文本转换地理几何类型函数 ST_GeogFromText 。...最后一种坐标转换计算方法, 参考PostGIS 坐标转换(SRID)边界问题引发专业知识 - ST_Transform 建议国内不要使用马萨诸塞州投影平面,会使得距离计算不够准确。...附近5公里内点 使用函数ST_DWithin 可以计算两个点之间距离是否在5公里内。...) 关于坐标体系 参考地理坐标系(球面坐标系)和投影坐标系(平面坐标系) 地理坐标系(Geographic coordinate system) 首先理解地理坐标系(Geographic coordinate

    3.6K20

    Java一分钟之-JPA查询:JPQL与Criteria API

    JPQL - 面向对象SQL JPQL是一种面向对象查询语言,它语法类似于SQL,但操作是实体及其属性而非数据库表和列。...参数绑定错误:在使用命名参数或位置参数时,容易出现参数绑定错误,如参数数量不匹配或类型错误。 避免策略 明确实体映射:确保实体类属性与数据库字段正确映射,必要时使用@Column注解明确指定。...String jpql = "SELECT u FROM User u WHERE u.username = :name"; TypedQuery query = entityManager.createQuery...); cq.select(userRoot).where(cb.equal(userRoot.get("username"), "Alice")); TypedQuery query = entityManager.createQuery...同时,利用JPA提供查询日志功能,监控查询性能,及时调整优化策略,也是不可或缺一部分。

    33610

    从零开始发布一个ArcGIS Server地图服务

    1.1、Oracle(可选) 1.1.1、安装Oracle服务端 这里选择是Oracle11g 64位。 运行安装 ? 出现下图警告,不用理会 ? 电子邮件可以不填 ?...完成安装后window菜单会有pgAdminⅢ数据库管理程序,打开后使用刚才密码成功连接数据库 ? ? 1.2.2、postgis安装 PostgreSQL安装完成后,安装postgis。...3.2.3、创建postgresql数据库 在pgAdmin中新建数据库名称为sample,所有者为postgres,模板为postgis_20 ?...数据库选择刚才创建sample数据库。 数据库管理员为超级用户postgres。...我错误原因是只安装了64位客户端,再装一个32位客户端,把Path中64位变量列在前面。 ? 然后,重启电脑,问题解决。

    4.7K71

    再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署

    虽然centos自带版本9.2也可以用,但是最近几次升级支持了更多更新内容,比如,PostgreSQL有一个MySQL无法比拟优势,那就是PostGISPostGIS可以完美支持空间数据存储和空间分析...这里我选择PostgreSQL10,CentOS 7平台, x86_64架构,就会出现相应yum源了。...在安装时默认添加用户postgres 输入 su - postgres psql 进入数据库 ?...PostgreSQL主从流复制部署 简介 postgres在9.0之后引入了主从流复制机制,所谓流复制,就是从服务器通过tcp流从主服务器中同步相应数据。...= 10s # 多久向主报告一次从状态,当然从每次数据复制都会向主报告状态,这里只是设置最长间隔时间 hot_standby_feedback = on # 如果有错误数据复制,是否向主进行反馈

    2.4K20

    Postgresql JIT README翻译

    例如,将元组解构 JIT 编译为本机函数,仅处理特定类型表,尽管元组解构通常不被理解为“程序”,但这是非常有益。 Why JIT?...错误处理有两个方面。首先,生成(LLVM IR)和发射函数(mmap()段)需要在成功执行查询和出现错误后进行清理。...错误处理第二个方面是LLVM内部OOM处理。上述基于资源所有者机制负责在出现错误时清理发射代码,但LLVM本身也有可能耗尽内存。LLVM默认情况下不使用任何C++异常。...内联 JIT表达式一个重要优势是可以通过内联被调用函数/操作符主体来显著减少PostgreSQL可扩展函数/操作符机制开销。 显然,为了内联目的而维护常用函数第二个实现是不可。...缓存 目前尚不可能缓存生成函数,尽管从性能角度来看这是可取。问题在于生成函数通常包含指向每次执行内存指针。为了避免这个问题,需要对表达式评估机制进行一些重新设计。

    30520

    POSTGIS 总结

    计算两点间距离相当于计算圆弧距离,不能使用平面几何原理,需要通过其他参考方法计算。 由于底层算法复杂,定义地理类型比空间类型少很多,随之算法增加,将出现地理类型。...)) 这时当我们往这个表试图插入一个错误空间对象时候,会得到一个错误: INSERT INTO test.cities ( shape, name ) VALUES ( GeomFromText(‘...为了让外部程序插入和检索有用几何图形信息,需要将它们转换为其他应用程序可以理解格式。...这种简单计算速度非常快,但有时并不可取,因为返回点不一定在要素本身上。如果输入几何图形具有凸性(假设字母’C’),则返回质心可能不在图形内部。...对于清晰但无效数据来说,这个函数非常适用,对于杂乱无章且无效数据来说,这个函数可能并不适用 ST_IsSimple(),检查图形简单性 几何图形简单性可以理解为几何图形比较简单整齐,不会自己与自己重叠

    6K10
    领券