作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 earthdistance 的问题PostgreSQL 的扩展。
正在关注 this指南,我添加了以下扩展:
CREATE EXTENSION cube;
CREATE EXTENSION earthdistance;
我尝试从 Postgres 命令行运行以下 SQL 查询,一切正常:
SELECT * FROM table
WHERE earth_box(ll_to_earth(40.463444, -3.637716), 2000) @> ll_to_earth(table.lat, table.lon)
当我尝试在 HQL 中运行相同的查询时,出现以下异常:
org.hibernate.QueryException: unexpected char: '@' [Select 1 from table WHERE earth_box(ll_to_earth(40.463444, -3.637716), 2000) @> ll_to_earth(table.lat, table.lon)]
! at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:250) ~[logistics-statemachine-1.0.jar:na]
! at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158) ~[logistics-statemachine-1.0.jar:na]
! at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:131) ~[logistics-statemachine-1.0.jar:na]
! at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:93) ~[logistics-statemachine-1.0.jar:na]
! at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:167) ~[logistics-statemachine-1.0.jar:na]
! at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301) ~[logistics-statemachine-1.0.jar:na]
! at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236) ~[logistics-statemachine-1.0.jar:na]
! at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1836) ~[logistics-statemachine-1.0.jar:na]
...
这告诉我 HQL 方言无法识别已安装的 Postgres 扩展。
是否有人能够将此运算符与 HQL 一起使用?
最佳答案
去掉@,异常就会消失。有没有打开hibernate log查看转换后的sql。
关于hibernate - 在 HQL 中使用 earthdistance Postgresql 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35181178/
拜托,你能解释一下 earth_box 函数的这种行为......或者我做错了什么吗? 使用的数据 40.749276, -73.985643 = Empire State Building - is
我猜它使用的单位是米 (m),但从 documentation 看不太清楚我找到了这是正确的吗? 如果是这样,只是为了验证,为了在英里/米之间进行转换,我认为这些函数应该可以解决问题: public
在 postgres 中,我知道有两种基于距离进行查询的方法。 第一个是使用特定算法“按距离查询”(如此处所示http://daynebatten.com/2015/09/latitude-longi
我遇到了 earthdistance 的问题PostgreSQL 的扩展。 正在关注 this指南,我添加了以下扩展: CREATE EXTENSION cube; CREATE EXTENSION
我是一名优秀的程序员,十分优秀!