2014-09-09 3 views
1

Я пытаюсь использовать операцию пересекающей с Querydsl:Как использовать операции с пересекающей Querydsl Spatial

PolygonPath<Polygon> polygonpath = new PolygonPath<Polygon>(entityPath, "location"); 
Geometry geometry = Wkt.fromWkt("POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))"); 
BooleanExpression intersectsExpression = polygonpath.intersects(geometry); 

и когда генерирует логическое выражение я получаю следующее сообщение:

unknown operation with operator com.mysema.query.spatial.SpatialOps#INTERSECTS and args [entity.location, POLYGON((30 10,40 40,20 40,10 20,30 10))]

Я использую HibernateSpatial .. Затем я пытаюсь сделать следующее:

Создайте свой собственный класс на основе HibernateSpatialSup порт для создания действительной операции пересечений для использования в HibernateSpatial.

Я создал HibernateSpatialOps с:

private static final String NS = HibernateSpatialOps.class.getName(); public static final Operator<Object> INTERSECTS = new OperatorImpl<Object>( NS, "intersects({0}, {1})");

Когда я генерировать логическое выражение с операцией пересекающая появляется следующее сообщение:

unknown operation with operator org.project1.querydsl.HibernateSpatialOps#intersects({0}, {1}) and args [entity.location, POLYGON ((-0.948944091796875 39.49052944781087, -0.4988479614257812 39.49052944781087, -0.4988479614257812 39.39030533696812, -0.948944091796875 39.39030533696812, -0.948944091796875 39.49052944781087))]

Можете ли вы мне помочь?

С наилучшими пожеланиями,

ответ

0

Hibernate Пространственная поддержка IST пока не доступны в Querydsl. Не стесняйтесь подталкивать его с помощью запроса на растяжение.

+0

И, наконец, я нашел решение для его решения. Я создаю HibernateSpatialTemplate, который получает значения ops из вашего/test/HibernateSpatialSupport и передает при построении JPAQuery ... И это отлично работает с использованием HibernateSpatial !!! ... С другой стороны, я использую JTS вместо геолотационных типов. .. Я реализовал GeometryExpression, GeometryPath и т. Д. Чтобы получить элементы JTS ... Как вы думаете, это хорошее решение? – jcgarcia