2

これが Hibernate で可能かどうかはわかりませんが、可能であれば本当に素晴らしいことです :) 実際にはこれで概念的な段階を過ぎたわけではありませんが、できる限り説明します。

Oracle Spatial の機能を利用して、近接ベースの検索を行いたいと考えています。緯度/経度の値を格納する Location エンティティがあるとします。次に、ユーザーが指定した緯度/経度の場所から 5 km 以内のすべての場所を照会したいとします。結果で、一致するすべての場所を表示したいのですが、場所エンティティの標準のマップされたフィールドに加えて、ユーザーが指定した場所に対する各場所の距離も表示したいと考えています。

Oracle Spatial ではこれを SQL の計算フィールドとして実行できますが、Hibernate がデータベースから返される計算フィールドをどのようにサポートできるかわかりません。計算フィールドはテーブルの列ではないため、標準のマッピングを行うことができません。

POJO のラッパーを作成し、追加の計算されたプロパティを返すことができるように Hibernate をそれらにマップできる特別な機能はありますか?

4

2 に答える 2

2

JPAアノテーションを使用して、マップされたオブジェクトに計算されたSQLフィールドと同じ名前(「距離」など)のプロパティを簡単に作成し、次のようにアノテーションを付けることができることがわかりました。

@Column(insertable=false, updatable=false)
private Double distance;

そして、これはプロパティをマップし、DB から保存しようとしているときにエラーをスローしないはずです。

正しい注釈は更新可能であることに注意してください (最初に投稿されたので更新できません)。

于 2011-11-09T07:24:41.950 に答える
1

HibernateSpatialとそのOracle10g/11gプロバイダーを見ましたか?

Hibernate Spatialは、地理データを処理するためのHibernateの一般的な拡張機能です。Hibernate Spatialはオープンソースであり、Hibernateと同様に、LGPLライセンスの下でライセンスされています。

Hibernate Spatialを使用すると、標準化された方法で地理データを処理できます。データベースが地理データをサポートする特定の方法から抽象化し、地理データストレージおよびクエリ機能への標準化されたクロスデータベースインターフェイスを提供します。

Hibernate Spatialは、OGC SimpleFeatureSpecificationのほとんどの機能をサポートしています。サポートされているデータベースは、Oracle 10g / 11g、Postgresql / Postgis、およびMySQLです。

于 2009-10-20T14:00:24.473 に答える