1
我正面临着PostgreSQL的earthdistance扩展的问题。在HQL中使用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中使用该操作符?