2012-09-27 66 views
4

我想请问如何这个MySQL查询翻译成一个Hibernate查询:如何这个MySQL查询转换成一个Hibernate查询

SELECT * FROM Cities WHERE WITHIN(GeomFromText('POINT(52.5 13.3)'), polygon); 

或本

SELECT * FROM Cities WHERE MBRContains(polygon, GeomFromText('POINT(52.5 13.3)'); 

谢谢。 托马斯

+0

做这些条款意味着'WITHIN(GeomFromText( 'POINT(52.5 13.3)'),多边形);'和'MBRContains(多边形,GeomFromText('POINT(52.5 13.3)'); '? – Lion

+0

http://dev.mysql.com/doc/refman/5.1/en/geometry-property-functions.html –

+0

我不认为原生Hibernate会做,但检出http:// www.hibernatespatial.org/ – gtgaxiola

回答

6

明白了:

import com.vividsolutions.jts.geom.Coordinate; 
import com.vividsolutions.jts.geom.GeometryFactory; 
import com.vividsolutions.jts.geom.Point; 
import javax.persistence.Query; 

Coordinate coord = new Coordinate(52.5, 13.3); 
Point point = new GeometryFactory().createPoint(coord); 
Query query = em.createQuery("FROM Cities WHERE WITHIN(:location, polygon) = true", Cities.class); 
query.setParameter("location", point); 
+1

感谢您的回答,不要忘记接受它。 – Lion

相关问题