首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HQL中使用earthdistance扩展模块

在HQL中使用earthdistance扩展模块
EN

Stack Overflow用户
提问于 2016-02-03 23:32:34
回答 1查看 330关注 0票数 2

我遇到了一个关于PostgreSQL的earthdistance扩展的问题。

遵循this指南,我添加了以下扩展:

代码语言:javascript
复制
CREATE EXTENSION cube;
CREATE EXTENSION earthdistance;

我尝试从Postgres命令行运行以下SQL查询,一切正常:

代码语言:javascript
复制
SELECT * FROM table 
WHERE earth_box(ll_to_earth(40.463444, -3.637716), 2000) @> ll_to_earth(table.lat, table.lon)

当我尝试在HQL中运行相同的查询时,我得到了以下异常:

代码语言:javascript
复制
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中使用这个运算符?

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 06:05:28

当@去掉时,异常就会消失。您是否打开了hibernate日志以查看转换后的sql。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35181178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档