2

Querydsl で INTERSECTS 操作を使用しようとしています。

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

BooleanExpression を生成すると、次のメッセージが表示されます。

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を使用しています..次に、次のことをしようとしています:

HibernateSpatialSupport に基づいて独自のクラスを作成し、HibernateSpatial で使用する有効な交差操作を作成します。

以下を使用して HibernateSpatialOps を作成しました。

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

交差操作で BooleanExpression を生成すると、次のメッセージが表示されます。

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

手伝って頂けますか?

よろしくお願いします、

4

1 に答える 1

0

Hibernate Spatial のサポートは、Querydsl ではまだ利用できません。プルリクエストでさらにプッシュしてください。

于 2014-09-09T16:15:22.673 に答える