Hibernate空间函数不断抛出意外的AST节点

时间:2014-10-30 13:03:38

标签: java jpql hibernate-4.x hibernate-spatial

我正在尝试查询我的实体之间的空间关系但仍然遇到此异常:

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映射的(一个是Polygon,另一个是Point。

Ps。:当我问这个问题时,我终于理解了这个问题。

2 个答案:

答案 0 :(得分:15)

显然空间函数的语法要求你根据布尔值测试它,所以我不得不在查询的末尾添加比较:

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

答案 1 :(得分:1)

对我而言,这似乎并没有解决类似的问题。 我恢复使用带有SpatialRestriction的Criteria来解决我的问题。 此示例搜索包含给定位置的所有区域,其中此处的位置为几何。

Criteria criteria = getCurrentSession().createCriteria(Region.class);
criteria.add(SpatialRestrictions.contains("theGeom", location));