1

他の多くの列の中で空間列を含む PostgreSQL テーブルがありますpoint。この空間列は、コンテンツを geoJson-Format で提供する必要があります。

通常の SQL は次のようになります。

select column1, column2, column3, ST_AsGeoJSON(point) from table;

そして書き戻し:

update table set column1 = 'abc', column2 = 'def', column3 = 'ghi', 
  point = ST_GeomFromGeoJSON('{ ... geojson ... }') 
  where id = ??;

hibernate-spatial と呼ばれる hibernate の拡張機能があることは知っています。ただし、この拡張機能は、geoJson を読み取ることはできますが、geoJson を解析して PostgreSQL に書き戻すことはできない postgis 1.5 用です。もう 1 つの欠点: 空間操作 (変換など) は、データベース側ではなくサーバー側で行われます。

次のようなクエリにSQL関数を挿入する可能性はありますか?

EntityManager em = emFactory.createEntityManager();
myModel selected = em.find(myModel.class, 1);

myModel では、ジオメトリに使用される列はString、geoJson を表す String または継承された型である必要があります。

Hibernate Dialects を見つけましたが、HQL (または JPL) でしか動作しないようです。この geojson を透過的に使用したいと思います。HQL と組み合わせて使用​​するのではなく (SQL をコードで記述する必要がありましたが、これは望ましくありません)。

setCustomWrite使用してsetCustomReadすることも可能ですが、それらの使用方法の例は見つかりませんでした。

タイプをpostgis-geometryに残したい理由の答えを防ぐために-データベース側の他の空間関連操作のため、このタイプに残す必要があります。

4

1 に答える 1

0

方言は休止状態用で、postgres ドライバーを使用するだけです...

于 2013-07-10T09:15:31.843 に答える