2014-10-30 3 views
4

Я пытаюсь запросить пространственные отношения между моими субъектами, но получаю это исключение:Hibernate пространственные функции продолжать бросать неожиданный AST узел

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected AST node: (near line 1, 

Мои объекты работают правильно, так это отображение. Я считаю, что мой запрос имеет вопрос:.

SELECT r FROM Regiao r, Imovel i WHERE r.nivel = :nivel AND contains(r.regiao, i.latlng) 

Где и r.regiao и i.latln являются GeometryType сопоставляются (один из них является многоугольник, а другая Точка

Ps .: Я спросил вопрос, который я наконец-то понял вопрос

ответ

12

Видимо синтаксис пространственных функций требует, чтобы проверить его против логических значений, так что я должен был добавить сравнения в конце моего запроса:.

SELECT r FROM Regiao r, Imovel i WHERE r.nivel = :nivel AND contains(r.regiao, i.latlng) = TRUE 
0

Для меня это, похоже, не помогло решить подобную проблему. Я решил вернуться к использованию критериев с помощью SpatialRestriction, чтобы решить мою проблему. В этом примере отображаются все регионы, которые содержат заданное местоположение, где находится геометрия.

Criteria criteria = getCurrentSession().createCriteria(Region.class); 
criteria.add(SpatialRestrictions.contains("theGeom", location)); 
Смежные вопросы