3

私はjsfプロジェクト(バージョン2.2)に取り組んでいます.javascriptにgeoJsonオブジェクトがあります.反対側には、PostGISにジオメトリのタイプ(MultiPolygon、4326)の列があります。私は Hibernate 4.3.8 と Postgresql 9.3 を使用しています。

モデル クラスのジオメトリ列の定義

@Type(type="org.hibernate.spatial.GeometryType")
@Column(name="geom")
private Polygon geom;

プロジェクトに Hibernate Spatial 4.x も含め、マネージド Bean の geojson 文字列にアクセスできます。しかし、この geojson をデータベースに挿入する方法がわかりません。おそらく、geojson を解析し、geojson 座標からポリゴン オブジェクトを作成して、データベースに渡す必要があります。しかし、私は成功しませんでした。これを行う方法は何ですか?

前もって感謝します。

4

3 に答える 3

1

そのフィールドでのデータベース処理は必要ないので、データベース内に文字列/BLOBとして保存しないでください。

于 2015-03-27T08:34:07.153 に答える
1

geojson-jackson プロジェクトをご覧ください。それがあなたが探しているものだと思います(まだテストしていませんが、良さそうです)。

幸運を!!

于 2015-03-17T10:38:23.407 に答える
0

おそらく、geojson を解析し、geojson 座標からポリゴン オブジェクトを作成する必要があります。

これを行う必要はありません。データベースがそれを行うことができます。可能性は高く、あなたよりも高速です。GeoJSON から Geometry を作成するだけです。データベースで次の関数を使用します。

geometry ST_GeomFromGeoJSON(text geomjson);

これにより、DB に保存したり、再投影したり、再フォーマットしたりできる EWKB-Geometry が生成されます。パラメーターは文字列としての GeoJSON です。

このデータベース関数を hibernate-spatial でトリガーする方法はわかりませんが、SQL クエリを直接実行する機能が必要です。ただし、これにより SQL インジェクション エラーが発生する可能性があることに注意してください。

PS: オブジェクト リレーショナル マッパーを空間アプリケーションのコンテキストで使用することはお勧めしません。

于 2015-03-31T11:07:40.457 に答える