gpt4 book ai didi

hibernate - 在 HQL 中使用 earthdistance Postgresql 扩展

转载 作者:行者123 更新时间:2023-11-29 12:26:16 26 4
gpt4 key购买 nike

我遇到了 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com