2014-10-30 79 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映射(一個是多邊形,另一個一個點

詩:正如我問這個問題我終於明白了這個問題

回答

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));